Playground & Test Sends
The Playground is a project's home page (the first item in the project's sidebar menu, and where the project opens once Getting Started is done). It is where you describe the form in plain language, watch it render, publish it, and send yourself a test message before any professional sees it.
The screen
Instructions box (bottom) — type what the form should collect, or press the microphone to dictate. Example chips (Collect lead details, Job application, Event RSVP, …) drop a ready-made instruction in.
Preview (centre) — the rendered, fillable form. What you see here is exactly what a recipient gets on the fill page, branding included.
Draft vs published — the Playground always edits a draft. Publish promotes it to the live version recipients receive; Revert discards the draft and restores the published version. A Published version peek shows what is live without touching the draft.
Send test — delivers the published form's link to your own phone or email over any enabled channel.
Build the form
Describe the form. Be concrete about the fields — names, types, options — e.g. "full name, work email, company size (1-10, 11-50, 51-200, 200+), and a checkbox to agree to be contacted". Field types and layout elements are listed in Building Projects.
Press Send (or Enter). The first instruction generates the form; with a draft on screen, further instructions revise it — "make the phone optional", "add a date field for the preferred call time".
Iterate until the preview looks right. The instruction log that produced the draft is kept with it, so you can pick up where you left off after a reload — an unpublished draft is stored server-side.
Click Publish. Until then nothing reaches recipients: loops, test sends and fill links created on the Responses page all use the published version.
Dictation: on Chrome and Safari the words appear as you speak; on browsers without speech recognition the recording is transcribed on the server once you stop. Switching tabs or clicking away stops the dictation.
Generation uses the server's OpenAI key and is counted on the project's Usage page as AI tokens; it does not spend credits.
Try the form yourself
Fill the preview in and submit it. That records a real submission with channel preview — it shows on the Responses page, fires the account webhook if you subscribed to Submission received, and lets you check the data shape (field names, file metadata) without messaging anyone.
Send a test message
A test send is a real delivery of the published form's link, to you.
Publish the form (the button is disabled until you do).
Click Send test, pick a channel — WhatsApp, Email or Text — and enter your own phone number (with country code) or email address.
Click Send via …. The message goes out through the channel's current credentials, exactly like a real loop.
What happens:
The message uses the channel's effective template — the project's template, else the account default, else the stock message — with
{link},{project},{company}and{name}filled in. Your own name fills the{username}greeting, since you are the recipient.A request appears on the Responses page marked as a test. The fill page it links to shows a test-only notice, and submitting it completes the request like any other.
The fill link is built on the site your browser is on, so a deployment whose configured base URL is stale still sends a link that opens.
A test send is a normal delivery for billing: it uses one credit-metered invocation and counts on the Usage page.
Test sends need the channel enabled on Settings → Integrations (see Channels Overview) — WhatsApp is on by default, email and text are not.
WhatsApp form loop mode
The dropdown next to the Playground title also offers WhatsApp form loop: the same form builder as Secure link — describe the form, refine it, publish it — but Send test delivers the published form to your phone as a native WhatsApp form (a Meta Flow opened from the message's Open form button) instead of a link. The popover then waits for you to submit and shows the answers as they land on the Responses page. Text, number, email, phone, date, choice and checkbox fields are carried; file uploads are not (the popover lists anything left out). Each test send is one invocation and the row is marked as a test. It is the console counterpart of the WhatsApp Form Loop API; a project whose loop type is the WhatsApp form loop opens in this mode (?mode=wa-form).
WhatsApp reply loop mode
The dropdown next to the Playground title switches between Secure link (the form builder above), WhatsApp form loop (above) and WhatsApp reply loop — collecting the details one question at a time in a WhatsApp chat, with no form and no link. It is the console counterpart of the WhatsApp Reply Loop API.
In the box at the top of the left panel, describe what you want to collect, e.g. “the customer's full name, the email for the invoice and their delivery address” — then press the send arrow (or Enter; Shift+Enter for a new line), or dictate it with the microphone.
The AI writes one short, friendly message per item, in order. The same box now improves them: type an instruction — “make the second one shorter”, “add a question about the budget”, “ask for the city before the address” — and send it; the questions you did not mention stay exactly as they are. You can also edit any of them by hand, remove some, move one up or down with the ▲ ▼ arrows (they are asked in the order listed), or Add a question below the list to write one yourself. The key shown under each question is the key its answer is stored under, so every question needs its own — a repeated name is flagged in red and blocks Send and Publish until it is changed. Like the form builder, the plan is kept in two copies: the draft you are editing (planning writes it, edits save a moment after you stop typing — Draft — not published yet shows in the header) and the published plan. Publish makes the draft the live plan; Revert throws the draft away and puts the published plan back on screen; View published peeks at the published plan while a draft is pending (View draft returns to it). Both copies and the test number are saved with the project, so the plan is there again when you come back and can be run as many times as you like; Run again after a run puts it back on screen. Send test runs whatever is on screen — the draft, or the published plan while you are viewing it. The published plan is what the WhatsApp Reply Loop API runs when your agent calls it with neither a prompt nor questions of its own, so you can try changes here before they reach real conversations.
Send test (top right) opens a popup: enter your WhatsApp number (with country code — it is remembered with the plan) and Send via WhatsApp; the first question is sent. The conversation panel shows it, polls for the reply, and as soon as the person answers, the next question goes out automatically. Delivery receipts (sent, delivered, read) show under each question. The first message carries the greeting and explains how to answer (once the question template is approved, see WhatsApp Setup, step 8); every later message is just the question, as plain text. Whatever the person sends next is the answer — several messages in a row are joined into one (the bubble says how many), and once the next question goes out, new messages belong to that one. The panel lists everything in the order it happened in the chat. Every test conversation is also a row on the project's Responses page (marked as a test), opened with its first question and completed with the last answer. Clear conversation deletes the Playground's questions and replies for the project, and those rows (usage and logs are kept) so the next test starts from an empty panel. Cancel waiting stops waiting for the current question (a late reply to it is ignored) and offers Send again or Skip to next; Run again starts the saved plan over.
The Collected table at the top of the conversation panel lists field → answer, filling in as each reply lands.
Each question sent is one invocation on your credits, each answer one capture, the same as the API. Replies only arrive if the server's Meta webhook is set up (see WhatsApp Setup, step 7), and the first question goes out as an approved template, never as free-form text — until Meta approves the template (WhatsApp Setup, step 8) every question fails with Meta's reason. If a question cannot be delivered the run stops with the reason and Send again retries it. The mode is remembered in the page URL (?mode=wa-loop).
Templates page test sends
The project's Templates tab has its own test send per channel. It sends that channel's template as you are editing it (with the test values you enter for custom placeholders) and works the same way otherwise: published form required, real delivery, request marked as a test.
Troubleshooting
| Message | Meaning |
|---|---|
| Publish the form first | Only a published version can be sent; there is a draft but no live version yet |
| channel is disabled | Enable the channel on Settings → Integrations (or, for Text, save your Twilio credentials) |
not configured / 503 | The server has no system credentials for that channel |
Out of credits / 402 | Top up on Billing — test sends are metered like real ones |
| Provider error text | Shown verbatim from WhatsApp, the email provider or Twilio — an unverified number, a sandbox restriction, a bad token |
| The link in the message opens on the wrong host | Check APP_BASE_URL on the server; test sends from the app follow your browser's site, API sends use the configured base URL |