Design your agent’s conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.
The script is the conversation plan your agent follows. You build it on the Script tab as a tree of blocks. Each block holds one or more steps (what the agent says or does), and subflows branch the conversation based on what the contact says. The agent uses the script as a guide, not a rigid recording: it speaks naturally, answers side questions, and returns to the flow.
The Script tab: a Start block, two subflows, a nested script, and Go to links on the canvas.
How a script is structured
Element
What it is
Block
A node on the canvas with a title and a list of steps. The first block carries a Start badge.
Step
One thing the agent does inside a block: say something, ask a key question, run an action, transfer, end the call, and so on. See Steps.
Subflow
A child block. When a block has several subflows, the agent picks the one whose title matches what just happened in the conversation.
Go to Block
A link that jumps back (or forward) to an existing block instead of duplicating it.
Nested script
A block that contains its own mini-script, collapsed into one node on the main canvas.
Scenario
An off-script situation the agent can handle at any point (objections, FAQs). Built on the Scenarios tab. See Scenarios.
How the agent chooses a subflow
Blocks run in order: the agent works through the steps in the current block, then moves to a child block. When there’s more than one child, it reads their titles and picks the one that fits the conversation. So title subflows after the trigger, not the reply:
Good title
Weak title
Contact is interested
Pitch
Contact asks about pricing
Pricing info
Wrong person answered
Apology
A block with no title shows as Subflow on the canvas. Titles are required before you can save.
Build the flow
1
Write the opening
Click the Start block (by default Intro Script) to open it in the side panel. Edit the first step. For outbound calls, confirm you’re speaking with the right person. For inbound, greet and ask how you can help.If the agent handles both directions, the first step has Outgoing and Incoming tabs so each direction gets its own opening.
2
Branch the conversation
Click + next to a block and choose Add Subflow. Enter a title such as Contact is interested, then add steps. Repeat for each likely response (for example, Not interested, Asks to call back later).You can also hover the connector between two blocks and click + to insert a new block in between.
3
Reuse blocks with Go to Block
Click + → Go to Block, then pick the target in Target Block or click or select the block from canvas. Give the link a title, just like a subflow, so the agent knows when to take it.
4
Close every path
Make sure each branch ends with an End Call (or End Chat / End Email) step, a Call Transfer, or a Go to Block link. Then click Save.
A Go to Block link sends the conversation to an existing block.
If no decision is needed, keep going in the same block. Only branch when the conversation can genuinely go different ways.
Block menu
Click ••• on a block (or right-click it) to open its menu:
Option
What it does
Edit
Opens the block in the side panel.
Create Subflow
Adds a child block.
Go to Block
Adds a link to an existing block.
Convert to Nested Script / Convert to Regular Node
Turns the block into a nested script, or back.
Move
Moves the block and its subflows. Click the + where it should go. Descendant blocks can’t be targets.
Duplicate
Copies the block. Click the + where the copy should go.
Delete
Removes the block and reconnects its parent to its children.
Delete With Subflows
Removes the block and everything under it.
The Start block can’t be moved, duplicated, or deleted. If a block you delete is the target of Go to Block links, those links are deleted too; Callers warns you before it happens.
Nested scripts
A nested script groups a multi-step sub-conversation (for example, an identity check or a qualification sequence) into a single node. Click + → Add Nested Script, or convert an existing block with Convert to Nested Script. Click the node to enter it. A breadcrumb (Script > block title) takes you back.
Give the nested script a label (Add a label). The label only helps you navigate; the agent doesn’t see it.
By default, nesting is one level deep: you can’t put a nested script inside another. Contact support to adjust this setting (up to 10 levels).
You can’t convert a block if one of its descendants is already a nested script.
Nested scripts are enabled per account. If you don’t see Add Nested Script, email .
Edit steps
Open a block to see its steps in the side panel. Add steps with the buttons at the bottom (Step, Schedule a Meeting, Action, Wait for results, Call Transfer, Widget, End Call) or with + between existing steps. The Steps page covers each one.Each step has a toolbar:
Button
What it does
Copy
Copies the step text.
Settings (sliders)
Per-step patience, Speak with no interruptions, and Keypad Input.
Play
Speaks the text in the agent’s voice.
Rephrase
Rewrites the text with AI.
Delete
Removes the step (a block always keeps at least one).
Hover the step number to reveal the star (Make a key question). Use the arrows to reorder steps. Call Transfer, End Call, and Wait steps stay in place.Step text can be up to 1,500 characters.
Inline tags
Inside a step you can insert tags that the agent resolves at runtime. Use the buttons under the text box (Variable, Instructions, Emotions) or the tag picker tabs.
Tag
Use it to
Syntax
Variable
Insert contact data, such as the contact’s name. Type + to insert one quickly.
{{firstName}}
Instruction
Tell the agent how to say something instead of scripting exact words.
*{Recap what the customer said}*
Action
Insert a value returned by an in-call action. Appears when an action returns data.
*[...]*
Transcript
Insert a value the AI extracted for an action.
[[actionName::param]]
Emotion
Set the tone of the next sentence, on voices that support emotions.
[excited]
Signature
Insert the mailbox signature (Email agents only).
~{Email Signature}~
A block's steps in the side panel: green chips are Variable tags, the blue text is an Instruction tag.
Suggested instructions include “Recap what the customer said”, “Summarize user’s issue”, and “Reply back showing empathy”.The text editor supports undo (Cmd/Ctrl+Z) and redo (Cmd/Ctrl+Shift+Z or Ctrl+Y). Select a word to turn it into a variable. See Variables.
Canvas controls
Use the zoom buttons (50–200%) and click the percentage to reset. A mini-map in the corner helps on large scripts. Changes aren’t saved until you click Save in the header.
Best practices for voice scripts
Write for the ear
Keep each step to one idea and two or three short sentences. Avoid lists, URLs, long numbers, and abbreviations. If the agent must share a link, send it by SMS or email instead of reading it out.
Ask one question at a time
End a step with a single, clear question, then wait. Two questions in one breath lead to half-answers.
Use instructions for flexibility
Scripted wording sounds the same every time. Use an Instruction tag (for example, “Acknowledge their concern, then explain the 30-day trial”) when the agent should adapt to what the contact just said.
Keep the main path short
Put the happy path in the script and move FAQs and objections into Scenarios and the knowledge base. Deep trees are hard to maintain and slow to test.
Confirm identity early
On outbound calls, confirm you have the right person before sharing anything personal. Add a Wrong person answered subflow that ends politely.
Always give the agent a way out
Every branch should end, transfer, or loop back. Dead ends make the agent improvise.
Test, then use Insights
Test each branch with test calls. After real calls, turn on Insights Mode to see where contacts drop off or interrupt, and fix those steps first.
Troubleshooting
A block shows a red alert icon
The block has an error. Common causes: missing title, no steps (“At least one Step should exist”), a step with empty text, or an Action step without an action selected. Open the block to see the message.
I can't add steps after a Call Transfer or End Call
These steps end the block. Add a subflow or put the steps before them.
The agent takes the wrong branch
Make subflow titles describe the contact’s situation clearly and distinctly. Overlapping titles such as Interested and Maybe interested confuse the choice. You can also add an instruction to the parent step about when to take each path.
Related
Steps
Every step type and its settings.
Variables
Personalize steps with contact data.
Scenarios
Handle objections and questions at any point.
Test your agent
Try every branch before going live.
Quickstart
Build and test your first agent in 10 minutes.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Callers","description":"Build AI agents that call, text, email, and talk to customers on your website. Guides, Web SDK, and API reference for the Callers platform.","colors":{"primary":"#3655E8","light":"#8EA0FF","dark":"#2A44C4"},"logo":{"light":"https://mintcdn.com/voxiaai/UdPum2goP7yfaYcC/logo/light.svg?fit=max\u0026auto=format\u0026n=UdPum2goP7yfaYcC\u0026q=85\u0026s=b1de758075c8bd929495ea22505d14b8","dark":"https://mintcdn.com/voxiaai/UdPum2goP7yfaYcC/logo/dark.svg?fit=max\u0026auto=format\u0026n=UdPum2goP7yfaYcC\u0026q=85\u0026s=cdb6dcbc265e95b7f15e77b15797cce6","href":"https://docs.callers.ai"},"favicon":"https://mintcdn.com/voxiaai/UdPum2goP7yfaYcC/logo/favicon.svg?fit=max\u0026auto=format\u0026n=UdPum2goP7yfaYcC\u0026q=85\u0026s=4a33273363fdf14d219145aa644b0ff7","appearance":{"default":"light","strict":false},"background":{"color":{"light":"#FFFFFF","dark":"#0A0D18"}},"navbar":{"links":[{"href":"https://www.callers.ai/book-a-meeting","label":"Book a demo"},{"href":"https://status.callers.ai","label":"Status"}],"primary":{"type":"button","label":"Open dashboard","href":"https://app.callers.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/callersai","website":"https://www.callers.ai"},"links":[{"header":"Product","items":[{"label":"Website","href":"https://www.callers.ai"},{"label":"Dashboard","href":"https://app.callers.ai"},{"label":"Book a demo","href":"https://www.callers.ai/book-a-meeting"}]},{"header":"Developers","items":[{"label":"API Reference","href":"/api-reference/introduction"},{"label":"Web SDK","href":"/sdk/overview"},{"label":"SDK Playground","href":"https://sdk-playground.callers.dev"}]},{"header":"Company","items":[{"label":"Status","href":"https://status.callers.ai"},{"label":"Trust Center","href":"https://trust.callers.ai"},{"label":"Contact us","href":"mailto:contact@callers.ai"}]}]},"search":{"prompt":"Search docs or ask a question…"},"seo":{"metatags":{"og:site_name":"Callers Docs"},"indexing":"navigable"},"fonts":{"family":"Inter"},"icons":{"library":"fontawesome"},"styling":{"codeblocks":"dark","latex":false},"errors":{"404":{"redirect":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.callers.ai"},{"anchor":"Status","icon":"signal","href":"https://status.callers.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"voxiaai","hasAudioNarration":false,"actualSubdomain":"voxiaai","customDomains":["docs.callers.ai"],"gitSource":{"type":"github","owner":"amy-io","repo":"docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af4578704fd3168b7727643","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Guides","count":80},{"language":"default","tag":"API Reference","count":72},{"language":"default","tag":"Endpoints","count":59},{"language":"default","tag":"Integrations","count":19},{"language":"default","tag":"Web SDK","count":14},{"language":"default","tag":"Get started","count":11},{"language":"default","tag":"Channels","count":11},{"language":"default","tag":"Build your agent","count":10},{"language":"default","tag":"Agents","count":10},{"language":"default","tag":"Contacts","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","href":"/_mintlify/custom/voxiaai/5f552627b22d6667/styles.css"}],"page":{"pagePath":"documentation/build-your-agent/agent-script","slug":"/documentation/build-your-agent/agent-script","pageMetadata":{"title":"Script editor","sidebarTitle":"Script editor","description":"Design your agent's conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.","icon":"diagram-project","href":"/documentation/build-your-agent/agent-script"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Design your agent’s conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const __snippet_CONTACT_EMAIL_12i9flv=`contact@callers.ai`;const ContactEmail=()=>{const _components={a:`a`,..._provideComponents()};return _jsx(_components.a,{href:`mailto:${__snippet_CONTACT_EMAIL_12i9flv}`,children:__snippet_CONTACT_EMAIL_12i9flv})};function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Table,Tip,_MdxComponentBoundary}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The script is the conversation plan your agent follows. You build it on the `,_jsx(_components.strong,{children:`Script`}),` tab as a tree of `,_jsx(_components.strong,{children:`blocks`}),`. Each block holds one or more `,_jsx(_components.strong,{children:`steps`}),` (what the agent says or does), and `,_jsx(_components.strong,{children:`subflows`}),` branch the conversation based on what the contact says. The agent uses the script as a guide, not a rigid recording: it speaks naturally, answers side questions, and returns to the flow.`]}),`\n`,_jsx(Frame,{caption:`The Script tab: a Start block, two subflows, a nested script, and Go to links on the canvas.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?fit=max\u0026auto=format\u0026n=ELyrb3NxuHh0ILKS\u0026q=85\u0026s=593228bc8eaf4bd9113b7875467d3f1a`,alt:`Agent editor on the Script tab showing an Introduction \u0026 Qualification start block branching into They are the decision maker and They are not the decision maker, a Meeting Scheduling nested script, and Goodbye blocks, with the Test and Publish buttons in the header`,\"data-og-width\":`3792`,width:`3792`,\"data-og-height\":`1802`,height:`1802`,\"data-path\":`images/documentation/build-your-agent/script-example.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?w=280\u0026fit=max\u0026auto=format\u0026n=ELyrb3NxuHh0ILKS\u0026q=85\u0026s=c8b8279ada4d5d8b9ca4959b3a1eabc6 280w, https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?w=560\u0026fit=max\u0026auto=format\u0026n=ELyrb3NxuHh0ILKS\u0026q=85\u0026s=da918b9dc762e1172a7180c1f8e94e2f 560w, https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?w=840\u0026fit=max\u0026auto=format\u0026n=ELyrb3NxuHh0ILKS\u0026q=85\u0026s=b8fb011bbbf9627c58d4c3d73d06a55e 840w, https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ELyrb3NxuHh0ILKS\u0026q=85\u0026s=1e227b307ddbfa9d83e95b8d3bad9ad4 1100w, https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ELyrb3NxuHh0ILKS\u0026q=85\u0026s=ca3785f6a77358ad3a6968c440276073 1650w, https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ELyrb3NxuHh0ILKS\u0026q=85\u0026s=ca746a1b802042bdf73456ea2cd6d4f0 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`how-a-script-is-structured`,children:`How a script is structured`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Element`}),_jsx(_components.th,{children:`What it is`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Block`})}),_jsxs(_components.td,{children:[`A node on the canvas with a title and a list of steps. The first block carries a `,_jsx(_components.strong,{children:`Start`}),` badge.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Step`})}),_jsxs(_components.td,{children:[`One thing the agent does inside a block: say something, ask a key question, run an action, transfer, end the call, and so on. See `,_jsx(_components.a,{href:`/documentation/build-your-agent/customizing-steps`,children:`Steps`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Subflow`})}),_jsx(_components.td,{children:`A child block. When a block has several subflows, the agent picks the one whose title matches what just happened in the conversation.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Go to Block`})}),_jsx(_components.td,{children:`A link that jumps back (or forward) to an existing block instead of duplicating it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Nested script`})}),_jsx(_components.td,{children:`A block that contains its own mini-script, collapsed into one node on the main canvas.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Scenario`})}),_jsxs(_components.td,{children:[`An off-script situation the agent can handle at any point (objections, FAQs). Built on the `,_jsx(_components.strong,{children:`Scenarios`}),` tab. See `,_jsx(_components.a,{href:`/documentation/build-your-agent/agent-scenarios`,children:`Scenarios`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`how-the-agent-chooses-a-subflow`,children:`How the agent chooses a subflow`}),`\n`,_jsxs(_components.p,{children:[`Blocks run in order: the agent works through the steps in the current block, then moves to a child block. When there’s more than one child, it reads their titles and picks the one that fits the conversation. So `,_jsx(_components.strong,{children:`title subflows after the trigger, not the reply`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Good title`}),_jsx(_components.th,{children:`Weak title`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Contact is interested`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Pitch`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Contact asks about pricing`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Pricing info`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Wrong person answered`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Apology`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A block with no title shows as `,_jsx(_components.strong,{children:`Subflow`}),` on the canvas. Titles are required before you can save.`]}),`\n`,_jsx(Heading,{level:`2`,id:`build-the-flow`,children:`Build the flow`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Write the opening`,children:[_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Start`}),` block (by default `,_jsx(_components.strong,{children:`Intro Script`}),`) to open it in the side panel. Edit the first step. For outbound calls, confirm you’re speaking with the right person. For inbound, greet and ask how you can help.`]}),_jsxs(_components.p,{children:[`If the agent handles both directions, the first step has `,_jsx(_components.strong,{children:`Outgoing`}),` and `,_jsx(_components.strong,{children:`Incoming`}),` tabs so each direction gets its own opening.`]})]}),_jsxs(Step,{title:`Branch the conversation`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`+`}),` next to a block and choose `,_jsx(_components.strong,{children:`Add Subflow`}),`. Enter a title such as `,_jsx(_components.code,{children:`Contact is interested`}),`, then add steps. Repeat for each likely response (for example, `,_jsx(_components.code,{children:`Not interested`}),`, `,_jsx(_components.code,{children:`Asks to call back later`}),`).`]}),_jsxs(_components.p,{children:[`You can also hover the connector between two blocks and click `,_jsx(_components.strong,{children:`+`}),` to insert a new block in between.`]})]}),_jsx(Step,{title:`Reuse blocks with Go to Block`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`+`}),` → `,_jsx(_components.strong,{children:`Go to Block`}),`, then pick the target in `,_jsx(_components.strong,{children:`Target Block`}),` or click `,_jsx(_components.strong,{children:`or select the block from canvas`}),`. Give the link a title, just like a subflow, so the agent knows when to take it.`]})}),_jsx(Step,{title:`Close every path`,children:_jsxs(_components.p,{children:[`Make sure each branch ends with an `,_jsx(_components.strong,{children:`End Call`}),` (or `,_jsx(_components.strong,{children:`End Chat`}),` / `,_jsx(_components.strong,{children:`End Email`}),`) step, a `,_jsx(_components.strong,{children:`Call Transfer`}),`, or a `,_jsx(_components.strong,{children:`Go to Block`}),` link. Then click `,_jsx(_components.strong,{children:`Save`}),`.`]})})]}),`\n`,_jsx(Frame,{caption:`A Go to Block link sends the conversation to an existing block.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/voxiaai/DUXJUr2YtBjwx26G/images/documentation/build-your-agent/go-to-block.png?fit=max\u0026auto=format\u0026n=DUXJUr2YtBjwx26G\u0026q=85\u0026s=584552bdafbfc7c3b617d2b67faa9e2a`,alt:`Script canvas with a Go to link selected under They are not the decision maker, and a side panel whose Target Block field is set to Goodbye with the option to select the block from the canvas`,\"data-og-width\":`3685`,width:`3685`,\"data-og-height\":`1185`,height:`1185`,\"data-path\":`images/documentation/build-your-agent/go-to-block.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/voxiaai/DUXJUr2YtBjwx26G/images/documentation/build-your-agent/go-to-block.png?w=280\u0026fit=max\u0026auto=format\u0026n=DUXJUr2YtBjwx26G\u0026q=85\u0026s=31df775679e6de5675a092a0e03f038f 280w, https://mintcdn.com/voxiaai/DUXJUr2YtBjwx26G/images/documentation/build-your-agent/go-to-block.png?w=560\u0026fit=max\u0026auto=format\u0026n=DUXJUr2YtBjwx26G\u0026q=85\u0026s=7f5d402249eb967ee48cd57768566f6b 560w, https://mintcdn.com/voxiaai/DUXJUr2YtBjwx26G/images/documentation/build-your-agent/go-to-block.png?w=840\u0026fit=max\u0026auto=format\u0026n=DUXJUr2YtBjwx26G\u0026q=85\u0026s=635fa2844b2f83d1735965d065512961 840w, https://mintcdn.com/voxiaai/DUXJUr2YtBjwx26G/images/documentation/build-your-agent/go-to-block.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DUXJUr2YtBjwx26G\u0026q=85\u0026s=11af878862581da28a095925f3f360e5 1100w, https://mintcdn.com/voxiaai/DUXJUr2YtBjwx26G/images/documentation/build-your-agent/go-to-block.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DUXJUr2YtBjwx26G\u0026q=85\u0026s=267850b074cef3f2d5908412986dd601 1650w, https://mintcdn.com/voxiaai/DUXJUr2YtBjwx26G/images/documentation/build-your-agent/go-to-block.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DUXJUr2YtBjwx26G\u0026q=85\u0026s=45eb985519264f964f8634747e478812 2500w`})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`If no decision is needed, keep going in the same block. Only branch when the conversation can genuinely go different ways.`})}),`\n`,_jsx(Heading,{level:`2`,id:`block-menu`,children:`Block menu`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`•••`}),` on a block (or right-click it) to open its menu:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Edit`})}),_jsx(_components.td,{children:`Opens the block in the side panel.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Create Subflow`})}),_jsx(_components.td,{children:`Adds a child block.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Go to Block`})}),_jsx(_components.td,{children:`Adds a link to an existing block.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Convert to Nested Script`}),` / `,_jsx(_components.strong,{children:`Convert to Regular Node`})]}),_jsx(_components.td,{children:`Turns the block into a nested script, or back.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Move`})}),_jsxs(_components.td,{children:[`Moves the block and its subflows. Click the `,_jsx(_components.strong,{children:`+`}),` where it should go. Descendant blocks can’t be targets.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Duplicate`})}),_jsxs(_components.td,{children:[`Copies the block. Click the `,_jsx(_components.strong,{children:`+`}),` where the copy should go.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delete`})}),_jsx(_components.td,{children:`Removes the block and reconnects its parent to its children.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delete With Subflows`})}),_jsx(_components.td,{children:`Removes the block and everything under it.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Start`}),` block can’t be moved, duplicated, or deleted. If a block you delete is the target of `,_jsx(_components.strong,{children:`Go to Block`}),` links, those links are deleted too; Callers warns you before it happens.`]}),`\n`,_jsx(Heading,{level:`2`,id:`nested-scripts`,children:`Nested scripts`}),`\n`,_jsxs(_components.p,{children:[`A nested script groups a multi-step sub-conversation (for example, an identity check or a qualification sequence) into a single node. Click `,_jsx(_components.strong,{children:`+`}),` → `,_jsx(_components.strong,{children:`Add Nested Script`}),`, or convert an existing block with `,_jsx(_components.strong,{children:`Convert to Nested Script`}),`. Click the node to enter it. A breadcrumb (`,_jsx(_components.strong,{children:`Script > block title`}),`) takes you back.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Give the nested script a label (`,_jsx(_components.strong,{children:`Add a label`}),`). The label only helps you navigate; the agent doesn’t see it.`]}),`\n`,_jsx(_components.li,{children:`By default, nesting is one level deep: you can’t put a nested script inside another. Contact support to adjust this setting (up to 10 levels).`}),`\n`,_jsx(_components.li,{children:`You can’t convert a block if one of its descendants is already a nested script.`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Nested scripts are enabled per account. If you don’t see `,_jsx(_components.strong,{children:`Add Nested Script`}),`, email `,_jsx(_MdxComponentBoundary,{name:`ContactEmail`,children:_jsx(ContactEmail,{})}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`edit-steps`,children:`Edit steps`}),`\n`,_jsxs(_components.p,{children:[`Open a block to see its steps in the side panel. Add steps with the buttons at the bottom (`,_jsx(_components.strong,{children:`Step`}),`, `,_jsx(_components.strong,{children:`Schedule a Meeting`}),`, `,_jsx(_components.strong,{children:`Action`}),`, `,_jsx(_components.strong,{children:`Wait for results`}),`, `,_jsx(_components.strong,{children:`Call Transfer`}),`, `,_jsx(_components.strong,{children:`Widget`}),`, `,_jsx(_components.strong,{children:`End Call`}),`) or with `,_jsx(_components.strong,{children:`+`}),` between existing steps. The `,_jsx(_components.a,{href:`/documentation/build-your-agent/customizing-steps`,children:`Steps`}),` page covers each one.`]}),`\n`,_jsx(_components.p,{children:`Each step has a toolbar:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Button`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Copy`}),_jsx(_components.td,{children:`Copies the step text.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Settings (sliders)`}),_jsxs(_components.td,{children:[`Per-step patience, `,_jsx(_components.strong,{children:`Speak with no interruptions`}),`, and `,_jsx(_components.strong,{children:`Keypad Input`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Play`}),_jsx(_components.td,{children:`Speaks the text in the agent’s voice.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Rephrase`}),_jsx(_components.td,{children:`Rewrites the text with AI.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Delete`}),_jsx(_components.td,{children:`Removes the step (a block always keeps at least one).`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Hover the step number to reveal the star (`,_jsx(_components.strong,{children:`Make a key question`}),`). Use the arrows to reorder steps. Call Transfer, End Call, and Wait steps stay in place.`]}),`\n`,_jsx(_components.p,{children:`Step text can be up to 1,500 characters.`}),`\n`,_jsx(Heading,{level:`2`,id:`inline-tags`,children:`Inline tags`}),`\n`,_jsxs(_components.p,{children:[`Inside a step you can insert tags that the agent resolves at runtime. Use the buttons under the text box (`,_jsx(_components.strong,{children:`Variable`}),`, `,_jsx(_components.strong,{children:`Instructions`}),`, `,_jsx(_components.strong,{children:`Emotions`}),`) or the tag picker tabs.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Tag`}),_jsx(_components.th,{children:`Use it to`}),_jsx(_components.th,{children:`Syntax`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Variable`})}),_jsxs(_components.td,{children:[`Insert contact data, such as the contact’s name. Type `,_jsx(_components.code,{children:`+`}),` to insert one quickly.`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{{firstName}}`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Instruction`})}),_jsxs(_components.td,{children:[`Tell the agent `,_jsx(_components.em,{children:`how`}),` to say something instead of scripting exact words.`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`*{Recap what the customer said}*`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Action`})}),_jsx(_components.td,{children:`Insert a value returned by an in-call action. Appears when an action returns data.`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`*[...]*`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Transcript`})}),_jsx(_components.td,{children:`Insert a value the AI extracted for an action.`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`[[actionName::param]]`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Emotion`})}),_jsx(_components.td,{children:`Set the tone of the next sentence, on voices that support emotions.`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`[excited]`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Signature`})}),_jsx(_components.td,{children:`Insert the mailbox signature (Email agents only).`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`~{Email Signature}~`})})]})]})]}),`\n`,_jsx(Frame,{caption:`A block's steps in the side panel: green chips are Variable tags, the blue text is an Instruction tag.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/voxiaai/Un65itTt0mgLk2MT/images/documentation/build-your-agent/intro-script.png?fit=max\u0026auto=format\u0026n=Un65itTt0mgLk2MT\u0026q=85\u0026s=b712d345a6e71e137abf88b0020a0d1e`,alt:`Side panel for the Introduction \u0026 Qualification block with three steps: a greeting using name, agentName, and companyName variable chips, an instruction step to briefly introduce productName, and a qualification question, with Step, Schedule a Meeting, Action, Call Transfer, and End Call buttons at the bottom`,\"data-og-width\":`1428`,width:`1428`,\"data-og-height\":`840`,height:`840`,\"data-path\":`images/documentation/build-your-agent/intro-script.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/voxiaai/Un65itTt0mgLk2MT/images/documentation/build-your-agent/intro-script.png?w=280\u0026fit=max\u0026auto=format\u0026n=Un65itTt0mgLk2MT\u0026q=85\u0026s=a534fbabf07ca0aae3c9d41e6f46f017 280w, https://mintcdn.com/voxiaai/Un65itTt0mgLk2MT/images/documentation/build-your-agent/intro-script.png?w=560\u0026fit=max\u0026auto=format\u0026n=Un65itTt0mgLk2MT\u0026q=85\u0026s=df3c89b567ee6f1a8cd3db8aaeb9828c 560w, https://mintcdn.com/voxiaai/Un65itTt0mgLk2MT/images/documentation/build-your-agent/intro-script.png?w=840\u0026fit=max\u0026auto=format\u0026n=Un65itTt0mgLk2MT\u0026q=85\u0026s=9671beab8dc0c6d2942c72666d222a94 840w, https://mintcdn.com/voxiaai/Un65itTt0mgLk2MT/images/documentation/build-your-agent/intro-script.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Un65itTt0mgLk2MT\u0026q=85\u0026s=5c438b6245b146ba23e82f446f863b03 1100w, https://mintcdn.com/voxiaai/Un65itTt0mgLk2MT/images/documentation/build-your-agent/intro-script.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Un65itTt0mgLk2MT\u0026q=85\u0026s=8877f7ebcd257f49f01652b4f4de61f8 1650w, https://mintcdn.com/voxiaai/Un65itTt0mgLk2MT/images/documentation/build-your-agent/intro-script.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Un65itTt0mgLk2MT\u0026q=85\u0026s=6a975ddef6b018fa80a9acf6940957a5 2500w`})}),`\n`,_jsx(_components.p,{children:`Suggested instructions include “Recap what the customer said”, “Summarize user’s issue”, and “Reply back showing empathy”.`}),`\n`,_jsxs(_components.p,{children:[`The text editor supports undo (Cmd/Ctrl+Z) and redo (Cmd/Ctrl+Shift+Z or Ctrl+Y). Select a word to turn it into a variable. See `,_jsx(_components.a,{href:`/documentation/build-your-agent/agent-variables`,children:`Variables`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`canvas-controls`,children:`Canvas controls`}),`\n`,_jsxs(_components.p,{children:[`Use the zoom buttons (50–200%) and click the percentage to reset. A mini-map in the corner helps on large scripts. Changes aren’t saved until you click `,_jsx(_components.strong,{children:`Save`}),` in the header.`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices-for-voice-scripts`,children:`Best practices for voice scripts`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Write for the ear`,id:`write-for-the-ear`,children:_jsx(_components.p,{children:`Keep each step to one idea and two or three short sentences. Avoid lists, URLs, long numbers, and abbreviations. If the agent must share a link, send it by SMS or email instead of reading it out.`})}),_jsx(Accordion,{title:`Ask one question at a time`,id:`ask-one-question-at-a-time`,children:_jsx(_components.p,{children:`End a step with a single, clear question, then wait. Two questions in one breath lead to half-answers.`})}),_jsx(Accordion,{title:`Use instructions for flexibility`,id:`use-instructions-for-flexibility`,children:_jsxs(_components.p,{children:[`Scripted wording sounds the same every time. Use an `,_jsx(_components.strong,{children:`Instruction`}),` tag (for example, “Acknowledge their concern, then explain the 30-day trial”) when the agent should adapt to what the contact just said.`]})}),_jsx(Accordion,{title:`Keep the main path short`,id:`keep-the-main-path-short`,children:_jsxs(_components.p,{children:[`Put the happy path in the script and move FAQs and objections into `,_jsx(_components.a,{href:`/documentation/build-your-agent/agent-scenarios`,children:`Scenarios`}),` and the `,_jsx(_components.a,{href:`/documentation/using-callers/knowledge-base`,children:`knowledge base`}),`. Deep trees are hard to maintain and slow to test.`]})}),_jsx(Accordion,{title:`Confirm identity early`,id:`confirm-identity-early`,children:_jsxs(_components.p,{children:[`On outbound calls, confirm you have the right person before sharing anything personal. Add a `,_jsx(_components.code,{children:`Wrong person answered`}),` subflow that ends politely.`]})}),_jsx(Accordion,{title:`Always give the agent a way out`,id:`always-give-the-agent-a-way-out`,children:_jsx(_components.p,{children:`Every branch should end, transfer, or loop back. Dead ends make the agent improvise.`})}),_jsx(Accordion,{title:`Test, then use Insights`,id:`test-then-use-insights`,children:_jsxs(_components.p,{children:[`Test each branch with test calls. After real calls, turn on `,_jsx(_components.strong,{children:`Insights Mode`}),` to see where contacts drop off or interrupt, and fix those steps first.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`A block shows a red alert icon`,id:`a-block-shows-a-red-alert-icon`,children:_jsx(_components.p,{children:`The block has an error. Common causes: missing title, no steps (“At least one Step should exist”), a step with empty text, or an Action step without an action selected. Open the block to see the message.`})}),_jsx(Accordion,{title:`I can't add steps after a Call Transfer or End Call`,id:`i-cant-add-steps-after-a-call-transfer-or-end-call`,children:_jsx(_components.p,{children:`These steps end the block. Add a subflow or put the steps before them.`})}),_jsx(Accordion,{title:`The agent takes the wrong branch`,id:`the-agent-takes-the-wrong-branch`,children:_jsxs(_components.p,{children:[`Make subflow titles describe the contact’s situation clearly and distinctly. Overlapping titles such as `,_jsx(_components.code,{children:`Interested`}),` and `,_jsx(_components.code,{children:`Maybe interested`}),` confuse the choice. You can also add an instruction to the parent step about when to take each path.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Steps`,icon:`shoe-prints`,href:`/documentation/build-your-agent/customizing-steps`,children:_jsx(_components.p,{children:`Every step type and its settings.`})}),_jsx(Card,{title:`Variables`,icon:`brackets-curly`,href:`/documentation/build-your-agent/agent-variables`,children:_jsx(_components.p,{children:`Personalize steps with contact data.`})}),_jsx(Card,{title:`Scenarios`,icon:`comments`,href:`/documentation/build-your-agent/agent-scenarios`,children:_jsx(_components.p,{children:`Handle objections and questions at any point.`})}),_jsx(Card,{title:`Test your agent`,icon:`flask`,href:`/documentation/build-your-agent/testing-your-agent`,children:_jsx(_components.p,{children:`Try every branch before going live.`})}),_jsx(Card,{title:`Quickstart`,icon:`rocket`,href:`/documentation/get-started/quickstart`,children:_jsx(_components.p,{children:`Build and test your first agent in 10 minutes.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{__snippet_CONTACT_EMAIL_12i9flv,ContactEmail,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Script editor","sidebarTitle":"Script editor","description":"Design your agent's conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.","icon":"diagram-project","href":"/documentation/build-your-agent/agent-script"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[166,383,"undefined;const ContactEmail=()=>null;fu"]]},"mdxExtracts":{"tableOfContents":[{"title":"How a script is structured","slug":"how-a-script-is-structured","depth":2,"children":[{"title":"How the agent chooses a subflow","slug":"how-the-agent-chooses-a-subflow","depth":3,"children":[]}]},{"title":"Build the flow","slug":"build-the-flow","depth":2,"children":[]},{"title":"Block menu","slug":"block-menu","depth":2,"children":[]},{"title":"Nested scripts","slug":"nested-scripts","depth":2,"children":[]},{"title":"Edit steps","slug":"edit-steps","depth":2,"children":[]},{"title":"Inline tags","slug":"inline-tags","depth":2,"children":[]},{"title":"Canvas controls","slug":"canvas-controls","depth":2,"children":[]},{"title":"Best practices for voice scripts","slug":"best-practices-for-voice-scripts","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"voxiaai","siteName":"Callers","title":"Script editor - Callers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T20:05:24.819Z","originalFileLocation":"documentation/build-your-agent/agent-script.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Design your agent\u0026#x27;s conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Callers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Script editor - Callers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Design your agent\u0026#x27;s conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Callers Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.callers.ai/documentation/build-your-agent/agent-script\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://voxiaai.mintlify.site/_mintlify/api/og/v2?division=Build+your+agent\u0026amp;title=Script+editor\u0026amp;description=Design+your+agent%27s+conversation+flow+on+a+visual+canvas+with+blocks%2C+subflows%2C+Go+to+Block+links%2C+nested+scripts%2C+and+inline+tags.\u0026amp;theme=1ee6aa4d36ee7f976f74e3bc\u0026amp;signature=66f217531d0b31f87c51827633e04778eb4d3dabd127584e1e17043cf94ee0e5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Script editor - Callers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Design your agent\u0026#x27;s conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://voxiaai.mintlify.site/_mintlify/api/og/v2?division=Build+your+agent\u0026amp;title=Script+editor\u0026amp;description=Design+your+agent%27s+conversation+flow+on+a+visual+canvas+with+blocks%2C+subflows%2C+Go+to+Block+links%2C+nested+scripts%2C+and+inline+tags.\u0026amp;theme=1ee6aa4d36ee7f976f74e3bc\u0026amp;signature=66f217531d0b31f87c51827633e04778eb4d3dabd127584e1e17043cf94ee0e5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/voxiaai/QQLjIdxYdrMgCmrs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Callers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3655E8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.callers.ai/documentation/build-your-agent/agent-script\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/documentation/build-your-agent/agent-script.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.callers.ai/#organization\",\"name\":\"Callers\",\"url\":\"https://docs.callers.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/voxiaai/UdPum2goP7yfaYcC/logo/light.svg?fit=max\u0026auto=format\u0026n=UdPum2goP7yfaYcC\u0026q=85\u0026s=b1de758075c8bd929495ea22505d14b8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.callers.ai#website\",\"name\":\"Callers\",\"url\":\"https://docs.callers.ai\",\"publisher\":{\"@id\":\"https://docs.callers.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script#webpage\",\"url\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script\",\"name\":\"Script editor\",\"description\":\"Design your agent's conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.\",\"dateModified\":\"2026-10-27T20:05:24.819Z\",\"isPartOf\":{\"@id\":\"https://docs.callers.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Build your agent\",\"item\":\"https://docs.callers.ai/documentation/build-your-agent/starting-a-new-agent\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Script editor\",\"item\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script#article\",\"headline\":\"Script editor\",\"name\":\"Script editor\",\"description\":\"Design your agent's conversation flow on a visual canvas with blocks, subflows, Go to Block links, nested scripts, and inline tags.\",\"url\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script\",\"mainEntityOfPage\":{\"@id\":\"https://docs.callers.ai/documentation/build-your-agent/agent-script#webpage\"},\"dateModified\":\"2026-10-27T20:05:24.819Z\",\"publisher\":{\"@id\":\"https://docs.callers.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.callers.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Callers\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Callers\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/documentation/build-your-agent/agent-script.md","siteName":"Callers","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.callers.ai"},{"anchor":"Status","icon":"signal","href":"https://status.callers.ai"}]},"tabs":[{"tab":"Guides","icon":"book-open","groups":[{"group":"Get started","pages":[{"title":"Introduction","sidebarTitle":"Introduction","icon":"house","mode":"wide","href":"/documentation/get-started/getting-started-with-callers"},{"title":"Build your first agent in 10 minutes","sidebarTitle":"Quickstart","icon":"rocket","href":"/documentation/get-started/quickstart"},{"title":"Core concepts","icon":"diagram-project","href":"/documentation/get-started/core-concepts"},{"title":"One agent, every channel","sidebarTitle":"Multichannel agents","icon":"layer-group","href":"/documentation/get-started/multichannel"},{"title":"Use cases","icon":"lightbulb","href":"/documentation/get-started/use-cases"}]},{"group":"Build your agent","pages":[{"title":"Create an Agent","sidebarTitle":"Create an agent","description":"Create a voice, text, or email agent, choose its direction and use case, generate a script with AI, and organize agents into groups.","icon":"rocket","href":"/documentation/build-your-agent/starting-a-new-agent"},{"title":"Script editor","sidebarTitle":"Script editor","icon":"diagram-project","href":"/documentation/build-your-agent/agent-script"},{"title":"Steps","description":"Reference for every script step type (say, key question, meeting, action, wait, transfer, widget, end) and the per-step voice settings.","icon":"shoe-prints","href":"/documentation/build-your-agent/customizing-steps"},{"title":"Variables","icon":"brackets-curly","href":"/documentation/build-your-agent/agent-variables"},{"title":"Scenarios","icon":"comments","href":"/documentation/build-your-agent/agent-scenarios"},{"title":"Actions","icon":"bolt","href":"/documentation/build-your-agent/agent-actions"},{"title":"Knowledge base","sidebarTitle":"Knowledge base","icon":"book","href":"/documentation/using-callers/knowledge-base"},{"title":"Agent settings","sidebarTitle":"Agent settings","icon":"sliders","href":"/documentation/build-your-agent/agent-setup"},{"title":"Pre-Call Chat","sidebarTitle":"Pre-call chat","icon":"message-question","href":"/documentation/build-your-agent/pre-call-chat"},{"title":"Studio Chat","icon":"sparkles","href":"/documentation/build-your-agent/studio-chat"}]},{"group":"Guardrails and security","pages":[{"title":"Instructions and guardrails","sidebarTitle":"Instructions \u0026 guardrails","icon":"shield-check","href":"/documentation/build-your-agent/instructions-and-guardrails"},{"title":"Security overview","sidebarTitle":"Security overview","icon":"shield-check","iconType":"regular","href":"/documentation/security/overview"},{"title":"Sensitive data","sidebarTitle":"Sensitive data","icon":"eye-slash","iconType":"regular","href":"/documentation/security/sensitive-data"},{"title":"Data access and retention","sidebarTitle":"Access and retention","icon":"clock-rotate-left","iconType":"regular","href":"/documentation/security/data-access-and-retention"},{"title":"Dial-only phone numbers","sidebarTitle":"Dial-only phone numbers","icon":"user-lock","iconType":"regular","href":"/documentation/security/dial-only-phone-numbers"}]},{"group":"Test and deploy","pages":[{"title":"Test Your Agent","sidebarTitle":"Test your agent","icon":"flask","href":"/documentation/build-your-agent/testing-your-agent"},{"title":"Versions and Split Traffic","sidebarTitle":"Versions \u0026 split traffic","icon":"code-branch","href":"/documentation/build-your-agent/versions-and-split-traffic"},{"title":"Path to production","sidebarTitle":"Go-live checklist","icon":"rocket","href":"/documentation/best-practices/path-to-production"}]},{"group":"Voice","pages":[{"title":"Voices and sounds","sidebarTitle":"Voices \u0026 sounds","icon":"waveform-lines","href":"/documentation/voice/voices-and-sounds"},{"title":"Conversation dynamics","sidebarTitle":"Conversation dynamics","icon":"comments","href":"/documentation/voice/conversation-dynamics"},{"title":"Supported languages","sidebarTitle":"Supported languages","icon":"language","href":"/documentation/using-callers/supported-languages"},{"title":"Pronunciation dictionary","sidebarTitle":"Pronunciation dictionary","icon":"spell-check","href":"/documentation/voice/pronunciation-dictionary"},{"title":"Speech recognition vocabulary","sidebarTitle":"Recognition vocabulary","icon":"ear-listen","href":"/documentation/voice/speech-recognition-vocabulary"},{"title":"Call transfers","sidebarTitle":"Call transfers","icon":"phone-arrow-up-right","href":"/documentation/voice/call-transfers"},{"title":"Voicemail and call screening","sidebarTitle":"Voicemail \u0026 screening","icon":"voicemail","href":"/documentation/voice/voicemail-and-screening"},{"title":"Keypad input (DTMF)","sidebarTitle":"Keypad input","icon":"table-cells","href":"/documentation/voice/keypad-input"},{"title":"Call recording and limits","sidebarTitle":"Recording \u0026 limits","icon":"stopwatch","href":"/documentation/voice/call-recording-and-limits"}]},{"group":"Channels","pages":[{"group":"Text","icon":"comment-dots","pages":[{"title":"Text agents","sidebarTitle":"Overview","icon":"messages","href":"/documentation/text-agents/overview"},{"title":"Text agent settings","sidebarTitle":"Setup","icon":"sliders","href":"/documentation/text-agents/text-agent-setup"},{"title":"Twilio SMS","icon":"comment-sms","href":"/documentation/text-agents/twilio-sms"},{"title":"Telnyx SMS","icon":"comment-sms","href":"/documentation/text-agents/telnyx-sms"},{"title":"WhatsApp","icon":"whatsapp","href":"/documentation/text-agents/whatsapp"}]},{"group":"Email","icon":"envelope","pages":[{"title":"Email agents","sidebarTitle":"Overview","icon":"envelope","href":"/documentation/email-agents/overview"},{"title":"Email setup","sidebarTitle":"Setup","icon":"sliders","href":"/documentation/email-agents/email-setup"},{"title":"Email approval","sidebarTitle":"Human approval","icon":"user-check","href":"/documentation/email-agents/email-approval"}]},{"group":"Website widget","icon":"window-restore","pages":[{"title":"Installing the widget","icon":"code","href":"/documentation/widget-agents/installing-the-widget"},{"title":"Styling the widget","icon":"palette","href":"/documentation/widget-agents/styling-the-widget"},{"title":"In-call forms","icon":"list-check","href":"/documentation/widget-agents/in-call-forms"}]}]},{"group":"Contacts and outreach","pages":[{"title":"Add and manage contacts","sidebarTitle":"Add contacts","icon":"address-book","href":"/documentation/using-callers/uploading-contacts"},{"title":"Scheduling and retries","sidebarTitle":"Scheduling and retries","icon":"calendar-clock","href":"/documentation/contacts/scheduling-and-retries"},{"title":"Phone numbers and caller ID","sidebarTitle":"Phone numbers","icon":"phone","href":"/documentation/contacts/phone-numbers-and-caller-id"},{"title":"Do Not Call list","sidebarTitle":"Do Not Call list","icon":"phone-slash","href":"/documentation/contacts/do-not-call"},{"title":"Contact memory","sidebarTitle":"Contact memory","icon":"brain","href":"/documentation/contacts/contact-memory"},{"title":"Global Search","icon":"magnifying-glass","iconType":"regular","href":"/documentation/using-callers/global-search"}]},{"group":"Results and analytics","pages":[{"title":"Statuses and outcomes","sidebarTitle":"Statuses and outcomes","icon":"signal","href":"/documentation/using-callers/call-statuses"},{"title":"Success criteria","sidebarTitle":"Success criteria","icon":"bullseye","href":"/documentation/results/success-criteria"},{"title":"Post-call analysis","sidebarTitle":"Post-call analysis","icon":"clipboard-list","href":"/documentation/using-callers/key-questions"},{"title":"Agent results and insights","sidebarTitle":"Results and insights","icon":"chart-line","href":"/documentation/using-callers/agent-insights"},{"title":"Analytics","icon":"chart-mixed","href":"/documentation/using-callers/analytics"},{"title":"Reporting call issues","sidebarTitle":"Report a call issue","icon":"flag","href":"/documentation/using-callers/reporting-call-issues"}]},{"group":"Human operators","pages":[{"title":"Human Operators","sidebarTitle":"Human operators","icon":"headset","href":"/documentation/human-operators/overview"}]},{"group":"Best practices","pages":[{"title":"Prompting voice agents","sidebarTitle":"Prompting for voice","icon":"pen-nib","href":"/documentation/best-practices/prompting-voice-agents"},{"title":"Latency and conversation quality","sidebarTitle":"Latency and quality","icon":"gauge-high","href":"/documentation/best-practices/latency-and-conversation-quality"},{"title":"Improve answer rates","sidebarTitle":"Improve answer rates","icon":"phone-volume","href":"/documentation/best-practices/improve-answer-rates"},{"title":"Calling and messaging compliance","sidebarTitle":"Compliance","icon":"scale-balanced","href":"/documentation/best-practices/compliance"}]},{"group":"Account and administration","pages":[{"title":"Team and permissions","sidebarTitle":"Team \u0026 permissions","icon":"users","href":"/documentation/account/team-and-permissions"},{"title":"API Keys","sidebarTitle":"API keys","icon":"key","href":"/documentation/using-callers/generate-api-key"},{"title":"Notifications","icon":"bell","href":"/documentation/account/notifications"},{"title":"Single sign-on (SSO)","sidebarTitle":"Single sign-on (SSO)","icon":"right-to-bracket","href":"/documentation/using-callers/sso-login"},{"title":"Managing subaccounts","sidebarTitle":"Subaccounts","icon":"sitemap","href":"/documentation/agencies/managing-subaccounts"},{"title":"White label","sidebarTitle":"White label","icon":"paintbrush","href":"/documentation/agencies/white-label"}]},{"group":"Enterprise","pages":[{"title":"Callers for Enterprise","sidebarTitle":"Overview","icon":"building","href":"/documentation/enterprise/overview"},{"title":"Bring Your Own LLM","sidebarTitle":"Bring your own LLM","icon":"microchip","href":"/documentation/enterprise/bring-your-own-llm"}]},{"group":"Resources","pages":[{"title":"Frequently asked questions","sidebarTitle":"FAQ","icon":"circle-question","href":"/documentation/resources/faq"},{"title":"Troubleshooting","icon":"screwdriver-wrench","href":"/documentation/resources/troubleshooting"},{"title":"Glossary","icon":"book","href":"/documentation/resources/glossary"},{"group":"Legal","icon":"scale-balanced","pages":[{"title":"Terms of Service","icon":"file-contract","url":"https://www.callers.ai/terms-of-use/","href":"/documentation/legal/terms-of-service"},{"title":"Privacy Policy","icon":"user-shield","mode":"wide","href":"/documentation/legal/privacy-policy"},{"title":"Open Source Attribution","icon":"code-branch","mode":"wide","href":"/documentation/legal/open-source-attribution"}]}]}]},{"tab":"Integrations","icon":"grid-2","pages":[{"title":"Integrations","href":"/documentation/integrations/catalog"}]},{"tab":"Web SDK","icon":"code","pages":[{"title":"Web SDK","href":"/sdk/overview"}]},{"tab":"API Reference","icon":"brackets-curly","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Changelog","icon":"sparkles","pages":[{"title":"Changelog","href":"/documentation/resources/changelog"}]}]},"basePath":"","title":"Script editor - Callers","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-D2acuaLg.js","DynamicMarkdown-Co5nikxh.js","zoom-image-lightbox-BbK2OBGL.js","lightbox-handle-r17bVUz3.js"]}