Create a TableTalk survey with AI
Describe what you want to learn. Bring the resulting file into TableTalk, review the questions and publish when you’re ready.
Two ways to start
In TableTalk, choose New survey → Generate with AI. Tell us the purpose, audience and approximate length. Review the proposed questions before creating your draft.
Or use your own AI assistant. Give it this guide and ask for a JSON file, then choose New survey → Import JSON in TableTalk.
Neither route publishes automatically. Access settings, invitations and PINs remain under your control.
A prompt to get started
Using the TableTalk authoring guide at this URL, create a five-minute survey about restaurant booking experiences for recent diners. Use neutral questions and return a downloadable TableTalk JSON file. I will review it before publishing.
The copied prompt includes this app’s guide URL. Replace the topic, audience and minutes to suit your study. Avoid putting private customer information into the brief.
Instructions for AI agents
Use the version 1 file schema. The file contains a title, optional description and question definition. It creates a draft through the operator’s import flow; this public guide does not grant access to their account.
- Return one JSON file, not HTML, SQL or a web page. Use format 'tabletalk-survey', formatVersion 1, title, optional description, and definition. Do not include access settings, credentials, PINs, organisation IDs, publication status, branding or respondent data.
- definition has version 1, firstQuestionId, optional submitLabel and sections, and 1–100 questions. Every question needs a unique id, a supported type and a title. IDs and option values should be stable, short, machine-friendly strings. Never use reserved question IDs such as _cookie_consent or __proto__.
- Each question may include description, exampleText (up to 800 characters), required, sectionId, nextQuestionId, endSurvey and showIf. Sections have a unique id, title and optional description. sectionId must refer to a defined section.
- Specify nextQuestionId explicitly for every question: the next question ID, or null to finish. Array order alone does not connect questions. endSurvey:true also ends the flow. All question IDs referenced by routes must exist; every question must be reachable and all paths must terminate without cycles.
- Only single_select options may branch. An option's nextQuestionId overrides its question's nextQuestionId. An omitted option route falls back to the question route. An option route cannot be null; route to a final info question to end just one branch.
- Options have label and unique value, optional helpText (up to 500 characters) and imageUrl. Store and compare values, not labels. Selection limits cannot exceed the option count.
- showIf contains questionId and exactly one of equals or includes. equals works with single_select, text, textarea and email. includes works with multi_select and image_select. Refer to an earlier answer that can exist on that path. The first question must not use showIf. When a condition is false, the runtime skips using that question's nextQuestionId.
- Use neutral, clear wording and ask one thing at a time. Match the requested audience and time budget. Offer balanced choices, including not applicable or prefer not to say where useful. Avoid collecting personal or sensitive information unless the operator explicitly needs it. Do not invent privacy promises, research facts, incentives or claims of anonymity.
- Keep the survey concise, normally 3–15 questions. Do not generate images or fetch external URLs. Use provided image URLs only; otherwise choose text options. The operator reviews the questions and branching, creates a draft, chooses access settings and explicitly publishes later.
Question types
| Type | Use | Fields and behaviour |
|---|---|---|
single_select | Choose one | options with label/value; option nextQuestionId may override the question route. |
multi_select | Choose several | options; optional minSelected and maxSelected. Route on the question, not its options. |
image_select | Choose images | options with real imageUrl values; optional minSelected and maxSelected. Do not invent image URLs. |
text | Short answer | optional maxLength (1–20000). |
textarea | Long answer | optional maxLength (1–20000). |
email | Email address | Use only when contact details are needed. Make optional unless essential. |
text_list | List of answers | itemCount (1–20), optional itemLabel and maxLength (1–2000). |
word_list | List of words | itemCount (1–20); each answer is a distinct single word made of letters. |
semantic_scale | Rating between two descriptions | scalePoints (2–10); pairs (1–30), each with a unique id, left and right labels. |
info | Information | A message with no answer. Use title and description; required is unnecessary. |
For advanced limits and optional insights settings, read the downloadable schema. Existing bare definitions from Advanced JSON can also be imported using the definition schema.
A complete branching example
People who booked answer a booking question. Walk-in guests skip it. Both paths reach the final optional question.
{
"format": "tabletalk-survey",
"formatVersion": 1,
"title": "Restaurant booking experience",
"description": "Understand how recent diners booked and what could be improved.",
"definition": {
"version": 1,
"firstQuestionId": "booked",
"submitLabel": "Send feedback",
"questions": [
{
"id": "booked",
"type": "single_select",
"title": "Did you book a table before your visit?",
"required": true,
"nextQuestionId": "improve",
"options": [
{
"label": "Yes",
"value": "yes",
"nextQuestionId": "ease"
},
{
"label": "No, I walked in",
"value": "no"
}
]
},
{
"id": "ease",
"type": "single_select",
"title": "How easy or difficult was it to make your booking?",
"required": true,
"nextQuestionId": "improve",
"options": [
{
"label": "Very easy",
"value": "very_easy"
},
{
"label": "Somewhat easy",
"value": "easy"
},
{
"label": "Neither easy nor difficult",
"value": "neutral"
},
{
"label": "Somewhat difficult",
"value": "difficult"
},
{
"label": "Very difficult",
"value": "very_difficult"
}
]
},
{
"id": "improve",
"type": "textarea",
"title": "What, if anything, could we improve about arranging your visit?",
"required": false,
"maxLength": 1500,
"nextQuestionId": null
}
]
}
}Review before publishing
TableTalk checks the file format, references and routing. You still need to check the wording, response choices, branching and whether the questions answer your research goal.
Files can contain up to 100 questions and must be smaller than 200 KB. Invalid files show errors without creating a survey. Names, email addresses, PINs, live responses and access settings do not belong in the import file.
Open TableTalk