Formbricks
App · 19 actions
Create and run Formbricks surveys, read and record responses, and start workflows when people answer.
Actions
| Action | What it does |
|---|---|
| Create a response | Record a response to a survey, such as feedback collected somewhere else. |
| Create a survey | Create a link survey from a list of questions, ready to share. |
| Create a user action | Add an event your app tracks, so an in-app survey can show when it happens. |
| Create a webhook | Have Formbricks send responses to an address of your own as they arrive. |
| Create single-use links | Make survey links that each accept one response, to send to people one by one. |
| Delete a response | Permanently delete one response. |
| Delete a survey | Permanently delete a survey and all of its responses. |
| Delete a user action | Remove a user action. |
| Delete a webhook | Stop a webhook sending events, and remove it. |
| Get a response | Fetch one response and all of its answers. |
| Get a survey | Fetch one survey: its status, link and questions. |
| Get a webhook | Fetch one webhook: where it sends, what, and for which surveys. |
| List responses | List survey responses, newest first, with every answer. |
| List surveys | List the surveys in your Formbricks workspace, with their questions and links. |
| List user actions | List the user actions that can show an in-app survey, such as a page view or an event your app tracks. |
| List webhooks | List the webhooks that send this workspace's responses elsewhere. |
| Update a response | Change answers on a response, or mark it completed. |
| Update a survey | Rename a survey, open, pause or close it, or turn its single-use links on or off. |
| Update a webhook | Change a webhook's name, address, events or surveys. |
Create a response
Record a response to a survey, such as feedback collected somewhere else. Formbricks runs its usual follow-ups and webhooks.
Inputs
- Survey
survey_idtextRequired - The survey. Pick one, or give its ID from an earlier step.
- Answers
answersobjectRequired - An answer for each question to fill in. Leave a question empty to skip it. For multiple choice, separate the choices with commas.
- Completed
completedtrue/false - Whether the response is finished. Defaults to yes.Default:
true. - Submitted at
submitted_atdate and time - When it was collected. Defaults to now.
- Language
languagetext - The language code it was answered in, such as de, if the survey is translated.
Outputs
answersobject- The answers keyed by question, such as {'How likely are you to recommend us?': 9}. The quickest way to read one answer.
answers_by_idobject- The same answers keyed by question ID, with hidden field values under their own IDs
completedtrue/false- Whether the person finished the survey
contact_idtext- The Formbricks contact who answered, if known
created_attext- When it was started
languagetext- The language code the survey was taken in, if set
metadataobject- Where the response came from: the page url, source, country and the person's browser, OS and device
response_idtext- Response ID. Use with Get, Update or Delete a response.
survey_idtext- The survey it answers
updated_attext- When it last changed
variablesobject- The survey's variables, such as a calculated score
Example output
{
"answers": {
"How likely are you to recommend us?": 9,
"What should we improve?": "Faster exports",
"source": "newsletter"
},
"answers_by_id": {
"q1": 9,
"q2": "Faster exports",
"source": "newsletter"
},
"completed": true,
"contact_id": "",
"created_at": "2026-10-19T10:02:11.000Z",
"language": "",
"metadata": {
"url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh"
},
"response_id": "cm2wr8d1k0003abcd5678ijkl",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"updated_at": "2026-10-19T10:03:40.000Z",
"variables": {}
}Create a survey
Create a link survey from a list of questions, ready to share. Finish styling or logic in Formbricks' editor if you need them.
Inputs
- Survey name
nametextRequired - The name people see at the top of the survey.
- Questions
questionslistRequired - The questions to ask, in order.
- Status
statustext - Active opens the survey to responses straight away. Defaults to Active.One of:
inProgress(Active),draft. Default:inProgress.
Outputs
created_attext- When it was created
hidden_fieldslist- The IDs of the survey's hidden fields
nametext- The survey's name
questionslist- The survey's questions, in order
single_use_linkstrue/false- Whether the survey only accepts single-use links
statustext- draft, scheduled, inProgress, paused or completed
survey_idtext- Survey ID. Use with the other survey and response steps.
survey_urltext- The link people open to take the survey. Empty for an in-app survey.
typetext- link for a shareable link survey, app for an in-app one
updated_attext- When it last changed
Example output
{
"created_at": "2026-10-19T09:30:00.000Z",
"hidden_fields": [
"source"
],
"name": "Customer feedback",
"questions": [
{
"choices": [],
"headline": "How likely are you to recommend us?",
"question_id": "q1",
"range": 10,
"required": true,
"type": "nps"
},
{
"choices": [],
"headline": "What should we improve?",
"question_id": "q2",
"required": false,
"type": "openText"
}
],
"single_use_links": false,
"status": "inProgress",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"survey_url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh",
"type": "link",
"updated_at": "2026-10-19T09:30:00.000Z"
}Create a user action
Add an event your app tracks, so an in-app survey can show when it happens.
Inputs
- Name
nametextRequired - What the action is called in Formbricks.
- Key
keytextRequired - The name your app tracks the event by, such as checkout-completed. It must be new in this workspace.
- Description
descriptiontext - What the action means, for your team.
Outputs
action_idtext- User action ID. Use with Delete a user action.
created_attext- When it was created
descriptiontext- What the action means
keytext- The key your app tracks, for a code action
nametext- The action's name
typetext- code for an action your app tracks, noCode for one set up in Formbricks
Example output
{
"action_id": "cm2wt4b2c0007abcd3456qrst",
"created_at": "2026-10-19T11:30:00.000Z",
"description": "Fires when a customer finishes paying",
"key": "checkout-completed",
"name": "Checkout completed",
"type": "code"
}Create a webhook
Have Formbricks send responses to an address of your own as they arrive.
Inputs
- Endpoint URL
urltextRequired - The public https address Formbricks should send events to.
- Events
eventslist - What to send. Defaults to completed responses.One or more of:
responseFinished(Response completed),responseCreated(Response started),responseUpdated(Response updated). - Surveys
survey_idslist - Only send events for these surveys. Leave empty for every survey.
- Name
nametext - A name to recognise the webhook by in Formbricks.
Outputs
all_surveystrue/false- Whether it sends for every survey in the workspace
created_attext- When it was created
eventslist- What it sends: responseFinished, responseCreated or responseUpdated
nametext- The webhook's name
signing_secrettext- The secret your endpoint uses to check that a delivery came from Formbricks. Formbricks shows it only this once.
survey_idslist- The surveys it sends for. Empty means every survey.
updated_attext- When it last changed
urltext- Where Formbricks sends events
webhook_idtext- Webhook ID. Use with Update or Delete a webhook.
Example output
{
"all_surveys": true,
"created_at": "2026-10-19T11:00:00.000Z",
"events": [
"responseFinished"
],
"name": "Responses to the CRM",
"signing_secret": "whsec_c2VjcmV0",
"survey_ids": [],
"updated_at": "2026-10-19T11:00:00.000Z",
"url": "https://example.com/hooks/formbricks",
"webhook_id": "cm2ws0p7e0005abcd9012mnop"
}Create single-use links
Make survey links that each accept one response, to send to people one by one. The survey's single-use links must be on.
Inputs
- Survey
survey_idtextRequired - The survey. Pick one, or give its ID from an earlier step.
- How many
countnumber - How many links to make, 1 to 5000.From 1 to 5000. Default:
1.
Outputs
linkslist- The links, each good for one response
survey_idtext- The survey the links open
Example output
{
"links": [
"https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh?suId=1a2b3c&suToken=4d5e6f"
],
"survey_id": "cm2wq3k9x0001abcd1234efgh"
}Delete a response
Permanently delete one response. This cannot be undone.
Inputs
- Response ID
response_idtextRequired - The response's ID, from 'List responses', a trigger or an earlier step.
Outputs
deletedtrue/false- True once Formbricks has deleted it
response_idtext- The response that was deleted
Example output
{
"deleted": true,
"response_id": "cm2wr8d1k0003abcd5678ijkl"
}Delete a survey
Permanently delete a survey and all of its responses. This cannot be undone.
Inputs
- Survey
survey_idtextRequired - The survey. Pick one, or give its ID from an earlier step.
Outputs
deletedtrue/false- True once Formbricks has deleted it
survey_idtext- The survey that was deleted
Example output
{
"deleted": true,
"survey_id": "cm2wq3k9x0001abcd1234efgh"
}Delete a user action
Remove a user action. Surveys it shows stop showing on that action.
Inputs
- User action
action_idtextRequired - The user action. Pick one, or give its ID from an earlier step.
Outputs
action_idtext- The user action that was deleted
deletedtrue/false- True once Formbricks has deleted it
Example output
{
"action_id": "cm2wt4b2c0007abcd3456qrst",
"deleted": true
}Delete a webhook
Stop a webhook sending events, and remove it.
Inputs
- Webhook
webhook_idtextRequired - The webhook. Pick one, or give its ID from an earlier step.
Outputs
deletedtrue/false- True once Formbricks has deleted it
webhook_idtext- The webhook that was deleted
Example output
{
"deleted": true,
"webhook_id": "cm2ws0p7e0005abcd9012mnop"
}Get a response
Fetch one response and all of its answers.
Inputs
- Response ID
response_idtextRequired - The response's ID, from 'List responses', a trigger or an earlier step.
Outputs
answersobject- The answers keyed by question, such as {'How likely are you to recommend us?': 9}. The quickest way to read one answer.
answers_by_idobject- The same answers keyed by question ID, with hidden field values under their own IDs
completedtrue/false- Whether the person finished the survey
contact_idtext- The Formbricks contact who answered, if known
created_attext- When it was started
languagetext- The language code the survey was taken in, if set
metadataobject- Where the response came from: the page url, source, country and the person's browser, OS and device
response_idtext- Response ID. Use with Get, Update or Delete a response.
survey_idtext- The survey it answers
updated_attext- When it last changed
variablesobject- The survey's variables, such as a calculated score
Example output
{
"answers": {
"How likely are you to recommend us?": 9,
"What should we improve?": "Faster exports",
"source": "newsletter"
},
"answers_by_id": {
"q1": 9,
"q2": "Faster exports",
"source": "newsletter"
},
"completed": true,
"contact_id": "",
"created_at": "2026-10-19T10:02:11.000Z",
"language": "",
"metadata": {
"url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh"
},
"response_id": "cm2wr8d1k0003abcd5678ijkl",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"updated_at": "2026-10-19T10:03:40.000Z",
"variables": {}
}Get a survey
Fetch one survey: its status, link and questions.
Inputs
- Survey
survey_idtextRequired - The survey. Pick one, or give its ID from an earlier step.
Outputs
created_attext- When it was created
hidden_fieldslist- The IDs of the survey's hidden fields
nametext- The survey's name
questionslist- The survey's questions, in order
single_use_linkstrue/false- Whether the survey only accepts single-use links
statustext- draft, scheduled, inProgress, paused or completed
survey_idtext- Survey ID. Use with the other survey and response steps.
survey_urltext- The link people open to take the survey. Empty for an in-app survey.
typetext- link for a shareable link survey, app for an in-app one
updated_attext- When it last changed
Example output
{
"created_at": "2026-10-19T09:30:00.000Z",
"hidden_fields": [
"source"
],
"name": "Customer feedback",
"questions": [
{
"choices": [],
"headline": "How likely are you to recommend us?",
"question_id": "q1",
"range": 10,
"required": true,
"type": "nps"
},
{
"choices": [],
"headline": "What should we improve?",
"question_id": "q2",
"required": false,
"type": "openText"
}
],
"single_use_links": false,
"status": "inProgress",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"survey_url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh",
"type": "link",
"updated_at": "2026-10-19T09:30:00.000Z"
}Get a webhook
Fetch one webhook: where it sends, what, and for which surveys.
Inputs
- Webhook
webhook_idtextRequired - The webhook. Pick one, or give its ID from an earlier step.
Outputs
all_surveystrue/false- Whether it sends for every survey in the workspace
created_attext- When it was created
eventslist- What it sends: responseFinished, responseCreated or responseUpdated
nametext- The webhook's name
survey_idslist- The surveys it sends for. Empty means every survey.
updated_attext- When it last changed
urltext- Where Formbricks sends events
webhook_idtext- Webhook ID. Use with Update or Delete a webhook.
Example output
{
"all_surveys": true,
"created_at": "2026-10-19T11:00:00.000Z",
"events": [
"responseFinished"
],
"name": "Responses to the CRM",
"survey_ids": [],
"updated_at": "2026-10-19T11:00:00.000Z",
"url": "https://example.com/hooks/formbricks",
"webhook_id": "cm2ws0p7e0005abcd9012mnop"
}List responses
List survey responses, newest first, with every answer.
Inputs
- Survey
survey_idtext - Only responses to this survey. Leave empty for every survey.
- From
start_datedate and time - Only responses on or after this moment.
- Until
end_datedate and time - Only responses on or before this moment.
- Dates mean
date_fieldtext - Whether From, Until and the order go by when a response was started or last changed. Defaults to started.One of:
createdAt(When it was started),updatedAt(When it was last changed). - Order
ordertext - Which end of the list to start from.One of:
desc(Newest first),asc(Oldest first). Default:desc. - Maximum responses
limitnumber - How many to return, 1 to 250.From 1 to 250. Default:
50. - Skip
skipnumber - Skip this many before returning any, to read the next page.At least 0.
Outputs
responseslist- The matching responses
totalnumber- How many responses match in total. Walk them with Skip.
Example output
{
"responses": [
{
"answers": {
"How likely are you to recommend us?": 9,
"What should we improve?": "Faster exports",
"source": "newsletter"
},
"answers_by_id": {
"q1": 9,
"q2": "Faster exports",
"source": "newsletter"
},
"completed": true,
"contact_id": "",
"created_at": "2026-10-19T10:02:11.000Z",
"language": "",
"metadata": {
"url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh"
},
"response_id": "cm2wr8d1k0003abcd5678ijkl",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"updated_at": "2026-10-19T10:03:40.000Z",
"variables": {}
}
],
"total": 1
}List surveys
List the surveys in your Formbricks workspace, with their questions and links.
Inputs
- Maximum surveys
limitnumber - How many to return, 1 to 250. Leave empty for all.From 1 to 250.
- Skip
skipnumber - Skip this many before returning any, to read the next page.At least 0.
Outputs
surveyslist- The workspace's surveys, newest first
Example output
{
"surveys": [
{
"created_at": "2026-10-19T09:30:00.000Z",
"hidden_fields": [
"source"
],
"name": "Customer feedback",
"questions": [
{
"choices": [],
"headline": "How likely are you to recommend us?",
"question_id": "q1",
"range": 10,
"required": true,
"type": "nps"
},
{
"choices": [],
"headline": "What should we improve?",
"question_id": "q2",
"required": false,
"type": "openText"
}
],
"single_use_links": false,
"status": "inProgress",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"survey_url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh",
"type": "link",
"updated_at": "2026-10-19T09:30:00.000Z"
}
]
}List user actions
List the user actions that can show an in-app survey, such as a page view or an event your app tracks.
Inputs
None.
Outputs
actionslist- The workspace's user actions
Example output
{
"actions": [
{
"action_id": "cm2wt4b2c0007abcd3456qrst",
"created_at": "2026-10-19T11:30:00.000Z",
"description": "Fires when a customer finishes paying",
"key": "checkout-completed",
"name": "Checkout completed",
"type": "code"
}
]
}List webhooks
List the webhooks that send this workspace's responses elsewhere.
Inputs
None.
Outputs
webhookslist- The workspace's webhooks
Example output
{
"webhooks": [
{
"all_surveys": true,
"created_at": "2026-10-19T11:00:00.000Z",
"events": [
"responseFinished"
],
"name": "Responses to the CRM",
"survey_ids": [],
"updated_at": "2026-10-19T11:00:00.000Z",
"url": "https://example.com/hooks/formbricks",
"webhook_id": "cm2ws0p7e0005abcd9012mnop"
}
]
}Update a response
Change answers on a response, or mark it completed. Answers left empty keep their current value.
Inputs
- Survey
survey_idtextRequired - The survey. Pick one, or give its ID from an earlier step.
- Response ID
response_idtextRequired - The response's ID, from 'List responses', a trigger or an earlier step.
- Answers
answersobject - The answers to change. Leave a question empty to keep its answer. For multiple choice, separate the choices with commas.
- Status
completedtext - Mark the response completed or in progress.One of:
true(Completed),false(In progress).
Outputs
answersobject- The answers keyed by question, such as {'How likely are you to recommend us?': 9}. The quickest way to read one answer.
answers_by_idobject- The same answers keyed by question ID, with hidden field values under their own IDs
completedtrue/false- Whether the person finished the survey
contact_idtext- The Formbricks contact who answered, if known
created_attext- When it was started
languagetext- The language code the survey was taken in, if set
metadataobject- Where the response came from: the page url, source, country and the person's browser, OS and device
response_idtext- Response ID. Use with Get, Update or Delete a response.
survey_idtext- The survey it answers
updated_attext- When it last changed
variablesobject- The survey's variables, such as a calculated score
Example output
{
"answers": {
"How likely are you to recommend us?": 9,
"What should we improve?": "Faster exports",
"source": "newsletter"
},
"answers_by_id": {
"q1": 9,
"q2": "Faster exports",
"source": "newsletter"
},
"completed": true,
"contact_id": "",
"created_at": "2026-10-19T10:02:11.000Z",
"language": "",
"metadata": {
"url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh"
},
"response_id": "cm2wr8d1k0003abcd5678ijkl",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"updated_at": "2026-10-19T10:03:40.000Z",
"variables": {}
}Update a survey
Rename a survey, open, pause or close it, or turn its single-use links on or off. Empty fields stay as they are.
Inputs
- Survey
survey_idtextRequired - The survey. Pick one, or give its ID from an earlier step.
- New name
nametext - The survey's new name.
- Status
statustext - Active collects responses, Paused stops for now, and Closed ends the survey.One of:
inProgress(Active),paused,completed(Closed). - Single-use links
single_use_linkstext - On makes the survey accept only links made by Create single-use links, each good for one response.One of:
on,off.
Outputs
created_attext- When it was created
hidden_fieldslist- The IDs of the survey's hidden fields
nametext- The survey's name
questionslist- The survey's questions, in order
single_use_linkstrue/false- Whether the survey only accepts single-use links
statustext- draft, scheduled, inProgress, paused or completed
survey_idtext- Survey ID. Use with the other survey and response steps.
survey_urltext- The link people open to take the survey. Empty for an in-app survey.
typetext- link for a shareable link survey, app for an in-app one
updated_attext- When it last changed
Example output
{
"created_at": "2026-10-19T09:30:00.000Z",
"hidden_fields": [
"source"
],
"name": "Customer feedback",
"questions": [
{
"choices": [],
"headline": "How likely are you to recommend us?",
"question_id": "q1",
"range": 10,
"required": true,
"type": "nps"
},
{
"choices": [],
"headline": "What should we improve?",
"question_id": "q2",
"required": false,
"type": "openText"
}
],
"single_use_links": false,
"status": "inProgress",
"survey_id": "cm2wq3k9x0001abcd1234efgh",
"survey_url": "https://app.formbricks.com/s/cm2wq3k9x0001abcd1234efgh",
"type": "link",
"updated_at": "2026-10-19T09:30:00.000Z"
}Update a webhook
Change a webhook's name, address, events or surveys. Empty fields stay as they are.
Inputs
- Webhook
webhook_idtextRequired - The webhook. Pick one, or give its ID from an earlier step.
- Endpoint URL
urltext - The new public https address to send events to.
- Events
eventslist - What to send from now on.One or more of:
responseFinished(Response completed),responseCreated(Response started),responseUpdated(Response updated). - Surveys
survey_idslist - Only send events for these surveys from now on.
- Name
nametext - The webhook's new name.
Outputs
all_surveystrue/false- Whether it sends for every survey in the workspace
created_attext- When it was created
eventslist- What it sends: responseFinished, responseCreated or responseUpdated
nametext- The webhook's name
survey_idslist- The surveys it sends for. Empty means every survey.
updated_attext- When it last changed
urltext- Where Formbricks sends events
webhook_idtext- Webhook ID. Use with Update or Delete a webhook.
Example output
{
"all_surveys": true,
"created_at": "2026-10-19T11:00:00.000Z",
"events": [
"responseFinished"
],
"name": "Responses to the CRM",
"survey_ids": [],
"updated_at": "2026-10-19T11:00:00.000Z",
"url": "https://example.com/hooks/formbricks",
"webhook_id": "cm2ws0p7e0005abcd9012mnop"
}