Commit Graph

698 Commits

Author SHA1 Message Date
Baptiste Arnaud
382a13c2fa
📝 Move database recommendation in self-hosting docs (#2516)
Some checks failed
Create Tag / create-tag (push) Has been cancelled
Deploy Workflows (Fly.io) / deploy (push) Has been cancelled
Monthly job / clean (push) Has been cancelled
- Moved the database recommendation under the "Ready to self-host?"
section.
2026-05-28 15:10:02 +00:00
Baptiste Arnaud
f170033be0
📝 Recommend Neon in self-hosting docs (#2515)
- Add Neon as the recommended production Postgres provider in
self-hosting docs, with a non-affiliate note.
- Link database recommendations to `https://typebot.com/neon`.
- Ignore `.context` files from Biome checks.
2026-05-28 17:02:54 +02:00
Baptiste Arnaud
5f01ecff64
📝 Update manual deploy docs for Nx (#2507)
- Update the manual self-hosting deploy guide for the current Nx/Bun
workflow.
- Replace stale PM2 commands with repo-root Nx start commands for
builder and viewer.
- Expand the Nginx sample to cover separate builder and viewer domains
and streaming support.
2026-05-22 13:39:21 +00:00
Baptiste Arnaud
a64e82b612
🐛 Fix unsafe upload URL generation (#2502)
- Replace direct browser presigned PUT uploads with signed Typebot
upload proxy URLs.
- Generate or validate upload object keys server-side while preserving
legacy v1/v2/v3 file-input upload contracts.
- Keep builder slot uploads stable for replaceable assets and use
generated names for runtime file uploads.
- Store active file-input MIME types as safe attachment downloads while
keeping safe image uploads inline.
- Update upload clients and docs to support both raw PUT proxy uploads
and form-data uploads.
2026-05-21 18:37:04 +02:00
Baptiste Arnaud
e296c870bc
🐛 Fix WhatsApp webhook verification (#2498)
- Verify Meta WhatsApp webhooks with optional app secrets while
preserving soft compatibility for existing credentials.
- Add optional 360Dialog webhook secret validation and update flows for
existing WhatsApp credentials.
- Validate Meta WABA and phone number access, then auto-subscribe the
Meta app to the WABA during setup.
- Clear and disable WhatsApp integration when the active credentials are
removed, including published bot state.
- Preserve raw webhook request bodies, document preview app secret
configuration, and add focused webhook verification tests.
- Update related tooling, Biome ignore rules, opensrc guidance, and
small formatting/type-safety cleanup.
2026-05-21 16:45:32 +02:00
Baptiste Arnaud
091db9e06f
📝 Add auth failure troubleshooting section to self-hosting docs (#2495)
- Added an "Authentication fails or users are randomly logged out"
section to `apps/docs/self-hosting/troubleshoot.mdx` covering the common
causes (rotated `NEXTAUTH_SECRET` / `ENCRYPTION_SECRET`, builder/viewer
secret mismatch, mismatched `NEXTAUTH_URL`, unreachable or reset
database).
- Pointed users to tail the builder logs to surface the actual NextAuth
/ Prisma error behind the generic "Check server logs" message.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 07:46:17 +00:00
Baptiste Arnaud
67c7c86b1a
Revert Google Sheets picker fixes (#2486, #2487) (#2488)
Some checks failed
Create Tag / create-tag (push) Has been cancelled
Deploy Partykit server / deploy (push) Has been cancelled
Deploy Workflows (Fly.io) / deploy (push) Has been cancelled
- Revert #2487 (trigger_onepick OAuth param) and #2486 (setAppId +
NEXT_PUBLIC_GOOGLE_SHEETS_APP_ID env var) which broke the Google Sheets
picker in production.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-12 17:12:31 +02:00
Baptiste Arnaud
8e67415766
🐛 Fix Google Sheets picker 401 by setting Cloud Project AppId (#2486)
- Call `PickerBuilder.setAppId()` with the Cloud Project number when
building the Google Sheets picker (required by Google when the OAuth
flow uses the `drive.file` scope, otherwise the picker iframe returns
401).
- Add new optional client env var `NEXT_PUBLIC_GOOGLE_SHEETS_APP_ID` in
`packages/env`.
- Document the new variable and setup step in
`apps/docs/self-hosting/configuration.mdx`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 16:30:43 +02:00
Baptiste Arnaud
30682a258a
📝 Document status page and analytics completion criteria (#2480)
- Added a new "Is there a status page?" entry to the FAQ pointing to
status.typebot.io.
- Added a "Definitions" section to the analytics doc explaining Views,
Starts, Completions (no input remaining + at least one answer + no
pending client-side action expecting a dedicated reply) and the
per-block drop-off rate.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 11:10:10 +02:00
Baptiste Arnaud
3e98f921d6
📝 Document VAT ID for B2B reverse charge (#2473)
- Add a new "Add a VAT ID for B2B reverse charge" section to
`apps/docs/workspace/subscription.mdx`
- Document the steps to add a VAT ID through the Stripe billing portal
- Clarify that the reverse charge only applies to future invoices, not
retroactively
- Note that without a VAT ID, destination VAT is charged as for a
standard B2C customer

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 08:39:16 +02:00
Baptiste Arnaud
60a77f0296
📝 Document graph edge pitfall and theme republish requirement (#2471)
Some checks failed
Create Tag / create-tag (push) Has been cancelled
Deploy Partykit server / deploy (push) Has been cancelled
Deploy Workflows (Fly.io) / deploy (push) Has been cancelled
- Add a "Common pitfalls" section to `apps/docs/editor/graph.mdx`
warning that a block without an outgoing edge stops the flow.
- Add a note in `apps/docs/theme/overview.mdx` clarifying that toggling
Typebot branding (or any theme change) requires a republish to go live.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 09:59:48 +00:00
Baptiste Arnaud
b9002d8bc1
📝 Add Pro-only callout, workspace switcher doc, external messaging guide (#2470)
Some checks failed
Create Tag / create-tag (push) Has been cancelled
Deploy Partykit server / deploy (push) Has been cancelled
Deploy Workflows (Fly.io) / deploy (push) Has been cancelled
- Add a Pro-only `<Note>` callout at the top of
`deploy/web/custom-domain.mdx`
- Add a "Switch workspace" section in `workspace.mdx` covering the
workspace dropdown
- Add a FAQ entry "I don't see my bots after login" pointing to the
workspace switcher
- Add new guide `guides/external-messaging-apps.mdx` on integrating
Typebot with external messaging apps (KakaoTalk, LINE, Telegram, etc.)
via the HTTP API
- Register the new guide in `mint.json`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 08:13:54 +00:00
Baptiste Arnaud
70b7fdfe79
📝 Fill common docs gaps (logs, user commands, downgrade, persistent input) (#2466)
- Clarify that logs are per-result and not a global activity feed in
`results/overview.mdx`
- Add `guides/user-commands.mdx` with a concrete Reply event + Jump +
Return recipe for `restart` / `help` commands
- Cross-link Reply event vs Command event in `editor/events/reply.mdx`
and `editor/events/command.mdx`
- Add FAQ entry explaining that a persistent text input is not native,
with keyword and custom-UI workarounds
- Restructure `workspace/subscription.mdx` with a Steps-based
cancel/downgrade flow and explicit Free plan limits (200 chats, 1 seat)
- Register the new user-commands guide in `mint.json` navigation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 10:24:19 +02:00
Baptiste Arnaud
da165dfebc
📝 Remove urgent support section from help docs (#2464)
Some checks failed
Create Tag / create-tag (push) Has been cancelled
Deploy Partykit server / deploy (push) Has been cancelled
Deploy Workflows (Fly.io) / deploy (push) Has been cancelled
- Remove the "If this is urgent" section and link to
`typebot.co/urgent-support` from the how-to-get-help docs page

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 15:09:43 +02:00
Baptiste Arnaud
20d11a5678
Add Ask Model action using OpenAI Responses API (#2455)
## Summary

- **New "Ask Model" action** in the OpenAI block using the Responses API
(`openai.responses.stream()`), supporting multi-turn conversations via
`previous_response_id`, built-in tools (file search with vector store
IDs, web search, code interpreter), custom function calling, and
streaming.
- **Deprecated "Ask Assistant"** action: hidden from the action dropdown
(still functional for existing typebots), with Sentry tracking for
production usage monitoring.
- **Updated template** (`openai-assistant-chat.json`) to use the new Ask
Model action with `gpt-5.4`.
- **Merged `chatModels` + `reasoningModels`** into a single `models`
list in constants.
- **Updated docs** replacing Ask Assistant documentation with Ask Model.

## Test plan
- [ ] Create a typebot with OpenAI → "Ask Model", configure model +
message + instructions, verify streaming works
- [ ] Test multi-turn: verify Response ID variable persists across
exchanges
- [ ] Test built-in tools: web search toggle, vector store IDs tag
input, code interpreter toggle
- [ ] Test custom function calling loop
- [ ] Verify "Ask Assistant" still works for existing typebots but is
hidden from the dropdown for new ones
- [ ] Verify the template loads correctly in the builder

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:02:35 +00:00
Baptiste Arnaud
cc9839f2e7
🔧 Migrate S3 uploads from presigned POST to presigned PUT (#2429)
## Changes

- **Presigned POST → PUT**: Replace `generatePresignedPostPolicy` with
`generatePresignedPutUrl` across all upload endpoints (builder + viewer
v1/v2/v3). This makes uploads compatible with Cloudflare R2 which
doesn't support the S3 POST Object API. Frontend consumers now use `PUT`
with raw file body + `Content-Type`/`Cache-Control` headers instead of
`POST` with FormData.
- **XSS mitigation**: Block dangerous content types (SVG, HTML, XML, JS)
in the builder `generateUploadUrl` endpoint. Restrict frontend `accept`
attributes from `image/*` to an explicit list of safe raster types
(`png, jpeg, gif, webp, avif, bmp, tiff`). Addresses
GHSA-jj87-c343-26vp.
- **Fix file upload URL validation**: `isURL` with `require_tld: true`
rejected `localhost` and `NEXTAUTH_URL` proxy URLs for private files.
Now uses a trusted host allowlist (`localhost`, `NEXTAUTH_URL`,
`S3_PUBLIC_CUSTOM_DOMAIN`) to skip TLD requirement.
- **Docs**: Update S3 CORS policy from `POST` to `PUT`, add Cloudflare
R2 to supported providers list.
- **Bump**: `@typebot.io/js` and `@typebot.io/react` → `0.10.0`

## Verification

- Tested avatar upload on builder with R2 bucket (PUT succeeds, image
displays)
- Verified CORS preflight passes after R2 bucket config
- Confirmed `generateUploadUrl` rejects `image/svg+xml` with 400
- All unit tests pass (`nx affected -t test`)
- Typecheck passes on all affected packages

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 15:34:35 +02:00
Baptiste Arnaud
cb2430ba84
🔧 Move to typebot.com 2026-03-26 17:10:02 +01:00
Baptiste Arnaud
c2b251c7e5
♻️ Migrate to NX (#2418) 2026-03-18 15:29:32 +00:00
Baptiste Arnaud
603fd903fb
🔧 Centralize runtime telemetry and Sentry reporting
Move builder, viewer, and workflows onto shared telemetry helpers so request logging, OTLP config, and workflow failures are reported consistently across runtimes.
2026-03-12 17:32:46 +01:00
Baptiste Arnaud
0109a5cadd
🔧 Rename Typebot debug env var to avoid conflict 2026-03-03 10:03:30 +01:00
Baptiste Arnaud
539f1cc041
📝 Update FAQ and HTTP Request documentation
Some checks failed
Create Tag / create-tag (push) Has been cancelled
Deploy Partykit server / deploy (push) Has been cancelled
Deploy Workflows (Fly.io) / deploy (push) Has been cancelled
2026-02-20 10:29:25 +01:00
Baptiste Arnaud
e8fabf91ad
🔧 Add iframe titles and enable iframe a11y lint (#2393) 2026-02-12 15:05:51 +00:00
Baptiste Arnaud
5e0de89911
🔧 Add forward WA errors and campaign statuses option 2026-02-11 16:46:35 +01:00
Baptiste Arnaud
03973f4439
Add prompt and new models to OpenAI transcription (#2365) 2026-01-23 16:10:35 +01:00
Baptiste Arnaud
e9cec09cba
🔧 Use export results Effect workflow (#2363) 2026-01-22 17:11:00 +01:00
Baptiste Arnaud
80db9565cd
♻️ Upgrade to Zod v4 (#2355) 2026-01-19 10:51:20 +01:00
Baptiste Arnaud
a15673f5a6
♻️ Migrate builder from tRPC to oRPC (#2342) 2026-01-13 15:10:07 +01:00
Baptiste Arnaud
69efa2f3c9
🚑️ Fix app router automatically adding transfer-encoding: chunked header to backend requests
Fixes #2336
2026-01-11 21:47:24 +01:00
Baptiste Arnaud
f29467df4f
💚 Fix typecheck lastActivityAt on schema 2026-01-05 21:22:30 +01:00
Baptiste Arnaud
3d649886c2
♻️ Refacto viewer server handler to oRPC 2025-12-17 18:00:20 +01:00
Baptiste Arnaud
f3e984a483
🔥 Remove legacy ai stream API handlers 2025-12-15 11:28:30 +01:00
Baptiste Arnaud
0b14a21b37
⬆️ Upgrade Next.js and react 2025-12-12 10:28:27 +01:00
Baptiste Arnaud
c8ee003e56
♻️ Export fetcher fetch in handlers array 2025-12-03 18:05:32 +01:00
Baptiste Arnaud
b9e64eca06
♻️ Move forged block handlers on a separate file 2025-12-03 17:11:17 +01:00
Baptiste Arnaud
c2d8920856
🔥 Remove legacy bot-engine 2025-11-26 15:32:26 +01:00
Baptiste Arnaud
7f58205f83
(openai) Add instructions field for gpt-4o-tts 2025-11-25 11:59:06 +01:00
Baptiste Arnaud
27c9bf12e8
🧱 (results) Process results export in the background for big exports 2025-11-18 18:15:08 +01:00
Baptiste Arnaud
a68f0c9179
🔒️ Restrict client code execution on imported bot 2025-11-18 17:54:19 +01:00
Baptiste Arnaud
2b3a55f265
♻️ Migrate testHttpRequest to tRPC and strengthen security 2025-11-11 12:26:15 +01:00
Baptiste Arnaud
e00e5ccc6f
📝 Add Make.com webhook response tutorial 2025-10-22 10:47:07 +02:00
Baptiste Arnaud
8da6dde890
🔥 Remove e2e tests from builder 2025-10-21 18:39:32 +02:00
Baptiste Arnaud
f5cfd684e1
(blink) Add redirect action 2025-10-20 11:15:00 +02:00
Baptiste Arnaud
8fb50aaf3f
🐛 Fix infinite scroll on results for bots with lots of results 2025-10-14 18:36:45 +02:00
Baptiste Arnaud
9688a297ad
🔧 Revert to carret version pinning 2025-10-03 10:51:27 +02:00
Baptiste Arnaud
eb28b0b51c
Add submitInput embed command
Some checks failed
Create Tag / create-tag (push) Has been cancelled
Deploy Partykit server / deploy (push) Has been cancelled
2025-09-18 10:08:08 +02:00
Baptiste Arnaud
476875b356
🔥 Remove startFrom param from publi startChat endpoint
Closes #2273
2025-09-17 11:42:26 +02:00
Baptiste Arnaud
4208cfc126
🚸 Improve WhatsApp webhook handler with next after func (#2284) 2025-09-16 15:24:01 +02:00
Baptiste Arnaud
c65aec0491
📝 Add warning to clarify differences between Webhook and HTTP Request blocks 2025-09-15 16:25:58 +02:00
Mohamed El Moctar
e6c7d6a4f9
📝 Update cors rules for AWS in s3 guide (#2278) 2025-09-09 11:46:38 +02:00
Baptiste Arnaud
afdcde79c8
🔧 Add support for http requests proxy 2025-09-03 18:28:00 +02:00