Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.
Actions are tasks an agent performs during a call rather than after it. Transfer
the call, press a key, hang up, or call your own API and use the answer in the next
sentence.Actions are created once here and then added to any agent.
Configure when the agent should transfer the call to another number.
Use DTMF (Dual Tone Multi-frequency)
Allow the bot to send keypresses during a call.
Custom Input
Trigger your own APIs during a call.
Warm Transfer Calls
Have the agent contact the transfer recipient before transferring the call.
The first three and the last are phone actions. Custom Input is the one that
creates a custom external action.
Several of these overlap with skills. Call Routing
and End Call cover the same ground with less
setup. Reach for an action when you need a trigger or a configuration the skill
does not offer.
When the agent should use it, in plain language. Required.
What is the API URL?
The endpoint to call. Required.
Account Connection
A connected account, if the endpoint needs one.
Signature Secret
See the warning below.
Speak on Send
Whether the agent may say something before the request goes out.
Speak on Receive
Whether the agent may respond as soon as the result comes back.
Processing Mode
Muted. This is the only option.
The trigger question is the important one, and it is not a label. It is what the agent
reads to decide whether this action applies, so write it as a sentence: “If the caller
asks where their order is and has given an order number, look it up.”Speak on Send and Speak on Receive are toggles, not scripts. You are deciding
whether the agent may speak at those moments, not writing what it says. With both off
the agent goes quiet while the request is in flight, which is what Muted means.
Turn Speak on Send on for anything slow. Silence on a phone call reads as a
dropped connection, and a caller who hears nothing for three seconds starts saying
“hello?”.
Signature Secret is stored and never used. Nothing in Fluents signs outbound
requests, so filling this in does not let your endpoint verify that a request came
from us. Do not treat it as security.If you need to authenticate incoming requests, put a secret in the URL path or use
an Account Connection, and treat the endpoint as publicly reachable.
The schema is what the agent has to collect before it may call your endpoint.Add Property takes a Name, an optional Description, a Type and a
Required field toggle. Types are String, Number and Boolean. There are
no arrays or nested objects.The JSON preview beside the form updates as you go, so you can see exactly what your
endpoint will receive.
Descriptions on properties are worth writing. They are how the agent knows what it
is asking for. “The order number the caller gives, digits only” gets you a cleaner
value than a bare order_number.
The agent collects the required fields through conversation, calls your endpoint, and
uses the response to carry on.
Both send data to a URL you control. The difference is whether the conversation waits.An action happens during the call and the agent uses the answer. A webhook
happens after something occurs and nobody is waiting.If the agent needs to say something based on the response, you want an action. If you
just need your systems to know, you want a webhook.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Fluents","colors":{"primary":"#4F26B0","light":"#4F26B0","dark":"#4F26B0"},"logo":{"light":"https://mintcdn.com/fluents/W3_lTopfh-MPxgIG/logo/light.png?fit=max\u0026auto=format\u0026n=W3_lTopfh-MPxgIG\u0026q=85\u0026s=df6ec38fc1edc83ff878dba4d265142e","dark":"https://mintcdn.com/fluents/W3_lTopfh-MPxgIG/logo/dark.png?fit=max\u0026auto=format\u0026n=W3_lTopfh-MPxgIG\u0026q=85\u0026s=f140612cf4bd33328d32cbd17bd34253"},"favicon":"https://mintcdn.com/fluents/W3_lTopfh-MPxgIG/favicon.png?fit=max\u0026auto=format\u0026n=W3_lTopfh-MPxgIG\u0026q=85\u0026s=05805ec9db48c56a8c20e0d6f5a1ee09","api":{"playground":{"display":"simple"}},"appearance":{"default":"light"},"footer":{"socials":{"website":"https://www.fluents.ai/"}},"seo":{},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fluents","hasAudioNarration":false,"actualSubdomain":"fluents","customDomains":["docs.fluents.ai"],"gitSource":{"type":"github","owner":"fluentsai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad147dc5dc4effd88fe8578","collectionId":"813063b7-139a-4bf8-a528-51fc40603523","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad147dc5dc4effd88fe8578"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad147dc5dc4effd88fe8578","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Documentation","count":70},{"language":"default","tag":"Product Documentation","count":48},{"language":"default","tag":"Feature Guides","count":32},{"language":"default","tag":"Integrations","count":16},{"language":"default","tag":"Integration Partners","count":16},{"language":"default","tag":"Agents","count":12},{"language":"default","tag":"Calls","count":11},{"language":"default","tag":"Numbers","count":10},{"language":"default","tag":"Agent skills","count":10},{"language":"default","tag":"Getting Started","count":9}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"#sidebar-group li>ul,.sidebar-group li>ul{margin-left:.8rem;border-left:1px solid rgb(17 24 39/.1)}.dark #sidebar-group li>ul,.dark .sidebar-group li>ul{border-left-color:rgb(255 255 255/.12)}#sidebar-group li>ul>li,.sidebar-group li>ul>li{position:relative}#sidebar-group li>ul>li::before,.sidebar-group li>ul>li::before{content:'';position:absolute;left:1.15rem;top:.95rem;width:5px;height:5px;border-radius:50%;background:rgb(17 24 39/.25)}.dark #sidebar-group li>ul>li::before,.dark .sidebar-group li>ul>li::before{background:rgb(255 255 255/.3)}#sidebar-group li>ul>li:has(>a[aria-current=page])::before,#sidebar-group li>ul>li:has(>a[class~='bg-primary/10'])::before,.sidebar-group li>ul>li:has(>a[aria-current=page])::before,.sidebar-group li>ul>li:has(>a[class~='bg-primary/10'])::before{background:#4f26b0}#sidebar-group li>ul>li:has(>a[aria-current=page])::after,#sidebar-group li>ul>li:has(>a[class~='bg-primary/10'])::after,.sidebar-group li>ul>li:has(>a[aria-current=page])::after,.sidebar-group li>ul>li:has(>a[class~='bg-primary/10'])::after{content:'';position:absolute;left:-1px;top:.25rem;bottom:.25rem;width:2px;border-radius:1px;background:#4f26b0}"}],"page":{"pagePath":"product/features/actions","slug":"/product/features/actions","pageMetadata":{"title":"Actions","sidebarTitle":"Actions","description":"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.","href":"/product/features/actions"},"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: \"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.\"\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];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,Note,OptimizedImage,Table,Tip,Warning}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Actions`}),` are tasks an agent performs during a call rather than after it. Transfer\nthe call, press a key, hang up, or call your own API and use the answer in the next\nsentence.`]}),`\n`,_jsx(_components.p,{children:`Actions are created once here and then added to any agent.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-two-tabs`,children:`The two tabs`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Phone Actions`}),` covers things the agent does to the call itself.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Custom External Actions`}),` covers calling your own API.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-five-types`,children:`The five types`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Create Action`}),` asks which kind you want.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`End Conversation`})}),_jsx(_components.td,{children:`Configure when the agent should end the call.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Transfer Calls`})}),_jsx(_components.td,{children:`Configure when the agent should transfer the call to another number.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Use DTMF (Dual Tone Multi-frequency)`})}),_jsx(_components.td,{children:`Allow the bot to send keypresses during a call.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Custom Input`})}),_jsx(_components.td,{children:`Trigger your own APIs during a call.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Warm Transfer Calls`})}),_jsx(_components.td,{children:`Have the agent contact the transfer recipient before transferring the call.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The first three and the last are phone actions. `,_jsx(_components.strong,{children:`Custom Input`}),` is the one that\ncreates a custom external action.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Several of these overlap with skills. `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/product/features/skills/call-routing`,children:`Call Routing`})}),`\nand `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/product/features/skills/end-conversation`,children:`End Call`})}),` cover the same ground with less\nsetup. Reach for an action when you need a trigger or a configuration the skill\ndoes not offer.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`building-a-custom-external-action`,children:`Building a custom external action`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/actions/custom-external-action.jpg?fit=max\u0026auto=format\u0026n=Ntis-q5QWqwCqRQw\u0026q=85\u0026s=2296b443438cace418eae4719c827cc2`,alt:`The Custom External Actions form showing Speak on Send and Speak on Receive as toggles, Processing Mode, and an input schema property with a live JSON preview`,\"data-og-width\":`1496`,width:`1496`,\"data-og-height\":`697`,height:`697`,\"data-path\":`images/product/actions/custom-external-action.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/actions/custom-external-action.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=Ntis-q5QWqwCqRQw\u0026q=85\u0026s=677d7f97f7f5b41e3e9c3b63c6d0d2cc 280w, https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/actions/custom-external-action.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=Ntis-q5QWqwCqRQw\u0026q=85\u0026s=5849eadae1ed140819c168f95d4c68c6 560w, https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/actions/custom-external-action.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=Ntis-q5QWqwCqRQw\u0026q=85\u0026s=85b1c957f8a2ad852056fc196d0f405b 840w, https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/actions/custom-external-action.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=Ntis-q5QWqwCqRQw\u0026q=85\u0026s=cebeb6d66556415f78d5b65d8df81b17 1100w, https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/actions/custom-external-action.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=Ntis-q5QWqwCqRQw\u0026q=85\u0026s=00ff24af9031a2b6478bbbfebab79cfb 1650w, https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/actions/custom-external-action.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=Ntis-q5QWqwCqRQw\u0026q=85\u0026s=7563999c14d9f883d83e1469ecdd4b64 2500w`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`What is the action name?`})}),_jsx(_components.td,{children:`A short name. Required.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`How should this action be triggered?`})}),_jsx(_components.td,{children:`When the agent should use it, in plain language. Required.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`What is the API URL?`})}),_jsx(_components.td,{children:`The endpoint to call. Required.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Account Connection`})}),_jsx(_components.td,{children:`A connected account, if the endpoint needs one.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Signature Secret`})}),_jsx(_components.td,{children:`See the warning below.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Speak on Send`})}),_jsx(_components.td,{children:`Whether the agent may say something before the request goes out.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Speak on Receive`})}),_jsx(_components.td,{children:`Whether the agent may respond as soon as the result comes back.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Processing Mode`})}),_jsx(_components.td,{children:`Muted. This is the only option.`})]})]})]}),`\n`,_jsx(_components.p,{children:`The trigger question is the important one, and it is not a label. It is what the agent\nreads to decide whether this action applies, so write it as a sentence: “If the caller\nasks where their order is and has given an order number, look it up.”`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Speak on Send`}),` and `,_jsx(_components.strong,{children:`Speak on Receive`}),` are toggles, not scripts. You are deciding\nwhether the agent may speak at those moments, not writing what it says. With both off\nthe agent goes quiet while the request is in flight, which is what `,_jsx(_components.strong,{children:`Muted`}),` means.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Turn `,_jsx(_components.strong,{children:`Speak on Send`}),` on for anything slow. Silence on a phone call reads as a\ndropped connection, and a caller who hears nothing for three seconds starts saying\n“hello?”.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-signature-secret-field-does-nothing`,children:`The Signature Secret field does nothing`}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Signature Secret`}),` is stored and never used. Nothing in Fluents signs outbound\nrequests, so filling this in does not let your endpoint verify that a request came\nfrom us. Do not treat it as security.`]}),_jsxs(_components.p,{children:[`If you need to authenticate incoming requests, put a secret in the URL path or use\nan `,_jsx(_components.strong,{children:`Account Connection`}),`, and treat the endpoint as publicly reachable.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-input-schema`,children:`The input schema`}),`\n`,_jsx(_components.p,{children:`The schema is what the agent has to collect before it may call your endpoint.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Add Property`}),` takes a `,_jsx(_components.strong,{children:`Name`}),`, an optional `,_jsx(_components.strong,{children:`Description`}),`, a `,_jsx(_components.strong,{children:`Type`}),` and a\n`,_jsx(_components.strong,{children:`Required field`}),` toggle. Types are `,_jsx(_components.strong,{children:`String`}),`, `,_jsx(_components.strong,{children:`Number`}),` and `,_jsx(_components.strong,{children:`Boolean`}),`. There are\nno arrays or nested objects.`]}),`\n`,_jsx(_components.p,{children:`The JSON preview beside the form updates as you go, so you can see exactly what your\nendpoint will receive.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Descriptions on properties are worth writing. They are how the agent knows what it\nis asking for. “The order number the caller gives, digits only” gets you a cleaner\nvalue than a bare `,_jsx(_components.code,{children:`order_number`}),`.`]})}),`\n`,_jsx(_components.p,{children:`The agent collects the required fields through conversation, calls your endpoint, and\nuses the response to carry on.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-list`,children:`The list`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Column`}),_jsx(_components.th,{children:`What it shows`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Name`})}),_jsx(_components.td,{children:`The action name, with its type underneath.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`The trigger text you wrote.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Action Trigger`})}),_jsx(_components.td,{children:`How it fires, such as Function Call.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Phone Number`})}),_jsx(_components.td,{children:`The number involved, for phone actions.`})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`actions-or-webhooks`,children:`Actions or webhooks`}),`\n`,_jsx(_components.p,{children:`Both send data to a URL you control. The difference is whether the conversation waits.`}),`\n`,_jsxs(_components.p,{children:[`An `,_jsx(_components.strong,{children:`action`}),` happens during the call and the agent uses the answer. A `,_jsx(_components.strong,{children:`webhook`}),`\nhappens after something occurs and nobody is waiting.`]}),`\n`,_jsxs(_components.p,{children:[`If the agent needs to say something based on the response, you want an action. If you\njust need your systems to know, you want a `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/product/features/webhook`,children:`webhook`})}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`where-to-go-next`,children:`Where to go next`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Add the action to an agent: `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/product/features/agent`,children:`Agents`})})]}),`\n`,_jsxs(_components.li,{children:[`Notify your systems instead: `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/product/features/webhook`,children:`Webhooks`})})]}),`\n`,_jsxs(_components.li,{children:[`Check whether an action ran on a call: `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/product/features/call`,children:`Calls`})})]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{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":{"config":{},"pageMetadata":{"title":"Actions","sidebarTitle":"Actions","description":"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.","href":"/product/features/actions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The two tabs","slug":"the-two-tabs","depth":2,"children":[]},{"title":"The five types","slug":"the-five-types","depth":2,"children":[]},{"title":"Building a custom external action","slug":"building-a-custom-external-action","depth":2,"children":[]},{"title":"The Signature Secret field does nothing","slug":"the-signature-secret-field-does-nothing","depth":2,"children":[]},{"title":"The input schema","slug":"the-input-schema","depth":2,"children":[]},{"title":"The list","slug":"the-list","depth":2,"children":[]},{"title":"Actions or webhooks","slug":"actions-or-webhooks","depth":2,"children":[]},{"title":"Where to go next","slug":"where-to-go-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"fluents","siteName":"Fluents","title":"Actions - Fluents","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-19T01:10:36.933Z","originalFileLocation":"product/features/actions.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=\"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fluents\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fluents/9O1LYrnNFDJkAmx2/_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/fluents/9O1LYrnNFDJkAmx2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fluents/9O1LYrnNFDJkAmx2/_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/fluents/9O1LYrnNFDJkAmx2/_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/fluents/9O1LYrnNFDJkAmx2/_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/fluents/9O1LYrnNFDJkAmx2/_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/fluents/9O1LYrnNFDJkAmx2/_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/fluents/9O1LYrnNFDJkAmx2/_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/fluents/9O1LYrnNFDJkAmx2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Actions - Fluents\">\u003cmeta data-mint-head property=\"og:description\" content=\"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fluents\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fluents.ai/product/features/actions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fluents.mintlify.app/_mintlify/api/og/v2?division=Automation\u0026amp;title=Actions\u0026amp;description=Things+an+agent+can+do+mid-call+beyond+talking%2C+including+calling+your+own+API+and+getting+an+answer+back+before+it+replies.\u0026amp;theme=46dbc8525a36dcde546fe4b2\u0026amp;signature=fe69b2f74fcb80ce1bc20b5bfff3c2bae58994131dac33085042b85df120b807\">\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=\"Actions - Fluents\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fluents.mintlify.app/_mintlify/api/og/v2?division=Automation\u0026amp;title=Actions\u0026amp;description=Things+an+agent+can+do+mid-call+beyond+talking%2C+including+calling+your+own+API+and+getting+an+answer+back+before+it+replies.\u0026amp;theme=46dbc8525a36dcde546fe4b2\u0026amp;signature=fe69b2f74fcb80ce1bc20b5bfff3c2bae58994131dac33085042b85df120b807\">\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/fluents/9O1LYrnNFDJkAmx2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fluents\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4F26B0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fluents.ai/product/features/actions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/product/features/actions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fluents.ai/#organization\",\"name\":\"Fluents\",\"url\":\"https://docs.fluents.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fluents/W3_lTopfh-MPxgIG/logo/light.png?fit=max\u0026auto=format\u0026n=W3_lTopfh-MPxgIG\u0026q=85\u0026s=df6ec38fc1edc83ff878dba4d265142e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fluents.ai#website\",\"name\":\"Fluents\",\"url\":\"https://docs.fluents.ai\",\"publisher\":{\"@id\":\"https://docs.fluents.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fluents.ai/product/features/actions#webpage\",\"url\":\"https://docs.fluents.ai/product/features/actions\",\"name\":\"Actions\",\"description\":\"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.\",\"dateModified\":\"2026-08-19T01:10:36.933Z\",\"isPartOf\":{\"@id\":\"https://docs.fluents.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fluents.ai/product/features/actions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fluents.ai/product/features/actions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Feature Guides\",\"item\":\"https://docs.fluents.ai/product/features/dashboard\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Actions\",\"item\":\"https://docs.fluents.ai/product/features/actions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.fluents.ai/product/features/actions#article\",\"headline\":\"Actions\",\"name\":\"Actions\",\"description\":\"Things an agent can do mid-call beyond talking, including calling your own API and getting an answer back before it replies.\",\"url\":\"https://docs.fluents.ai/product/features/actions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fluents.ai/product/features/actions#webpage\"},\"dateModified\":\"2026-08-19T01:10:36.933Z\",\"publisher\":{\"@id\":\"https://docs.fluents.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fluents.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fluents\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Fluents","nav":{"global":null,"anchors":[{"anchor":"Product Documentation","icon":"book","groups":[{"group":"Getting Started","icon":"rocket","pages":[{"title":"Introduction to Fluents","sidebarTitle":"Introduction","icon":"hand-wave","href":"/product/welcome"},{"group":"Quickstart","icon":"play","expanded":true,"pages":[{"title":"Quickstart","sidebarTitle":"Overview","href":"/product/quickstart/index"},{"title":"Create your first inbound agent","sidebarTitle":"Your first inbound agent","href":"/product/quickstart/first-inbound-agent"},{"title":"Create your first outbound agent","sidebarTitle":"Your first outbound agent","href":"/product/quickstart/first-outbound-agent"},{"title":"Set up your first campaign","sidebarTitle":"Your first campaign","href":"/product/quickstart/first-campaign"},{"title":"Improving an agent","sidebarTitle":"Improving an agent","href":"/product/quickstart/improving-an-agent"}]},{"group":"Use cases","icon":"briefcase","pages":[{"title":"Use cases","sidebarTitle":"Overview","href":"/product/use-cases/index"},{"title":"Book appointments for a clinic","sidebarTitle":"Clinic appointments","href":"/product/use-cases/clinic-appointments"}]},{"title":"Documentation assistant","sidebarTitle":"Documentation assistant","icon":"comments","href":"/product/features/assistant"}]},{"group":"Core Concepts","icon":"lightbulb","pages":[{"group":"Agents","icon":"robot","pages":[{"title":"What an agent is","sidebarTitle":"What an agent is","href":"/product/concepts/agent/intro"},{"title":"What the agent says","sidebarTitle":"What the agent says","href":"/product/concepts/agent/basic"},{"title":"How a call runs","sidebarTitle":"How a call runs","href":"/product/concepts/agent/advanced"},{"title":"What happens after a call","sidebarTitle":"After a call","href":"/product/concepts/agent/post-call"}]},{"title":"How campaigns work","sidebarTitle":"Campaigns","href":"/product/concepts/campaigns"},{"title":"How numbers work","sidebarTitle":"Numbers","href":"/product/concepts/numbers"},{"title":"How voices work","sidebarTitle":"Voices","href":"/product/concepts/voices"}]},{"group":"Feature Guides","icon":"book","pages":[{"group":"Activity","icon":"chart-line","expanded":true,"pages":[{"title":"Dashboard","sidebarTitle":"Dashboard","href":"/product/features/dashboard"},{"title":"Calls","sidebarTitle":"Calls","href":"/product/features/call"},{"title":"Reports","sidebarTitle":"Reports","tag":"BETA","href":"/product/features/reports"}]},{"group":"Agents","icon":"robot","pages":[{"title":"Agents","sidebarTitle":"Agents","href":"/product/features/agent"},{"title":"Data","sidebarTitle":"Data","href":"/product/features/data"},{"title":"Post-call","sidebarTitle":"Post-call","href":"/product/features/post-call"},{"title":"Testing an agent","sidebarTitle":"Testing an agent","href":"/product/features/agent-testing"}]},{"group":"Agent skills","icon":"puzzle-piece","pages":[{"title":"Appointment Scheduling","sidebarTitle":"Appointment Scheduling","href":"/product/features/skills/appointment-scheduling"},{"title":"Call Routing","sidebarTitle":"Call Routing","href":"/product/features/skills/call-routing"},{"title":"Call Back Later","sidebarTitle":"Call Back Later","href":"/product/features/skills/call-back-later"},{"title":"Knowledge Search","sidebarTitle":"Knowledge Search","href":"/product/features/skills/knowledge-search"},{"title":"Switch Communication","sidebarTitle":"Switch Communication","href":"/product/features/skills/switch-communication"},{"title":"In Call Email","sidebarTitle":"In Call Email","href":"/product/features/skills/in-call-email"},{"title":"In Call SMS","sidebarTitle":"In Call SMS","href":"/product/features/skills/in-call-sms"},{"title":"Call Screen Handling","sidebarTitle":"Call Screen Handling","href":"/product/features/skills/call-screen-handling"},{"title":"IVR Navigation","sidebarTitle":"IVR Navigation","href":"/product/features/skills/ivr-navigation"},{"title":"End Call","sidebarTitle":"End Call","href":"/product/features/skills/end-conversation"}]},{"group":"Campaigns","icon":"bullhorn","pages":[{"title":"Campaigns","sidebarTitle":"Campaigns","href":"/product/features/campaigns"},{"title":"Campaign Schedules","sidebarTitle":"Campaign schedules","href":"/product/features/campaign-schedules"}]},{"group":"Connections","icon":"plug","pages":[{"title":"Numbers","sidebarTitle":"Numbers","href":"/product/features/numbers"},{"title":"DNC List","sidebarTitle":"DNC List","href":"/product/features/dnc-list"},{"title":"Providers and connections","sidebarTitle":"Providers","href":"/product/features/providers"}]},{"group":"Libraries","icon":"layer-group","pages":[{"title":"Prompts","sidebarTitle":"Prompts","href":"/product/features/prompts"},{"title":"Voices","sidebarTitle":"Voices","href":"/product/features/voice"},{"title":"Knowledge Bases","sidebarTitle":"Knowledge Bases","description":"Store documents your agents can search during a call, so they answer from your content instead of improvising.","href":"/product/features/knowledge-base"}]},{"group":"Automation","icon":"bolt","pages":[{"title":"Actions","sidebarTitle":"Actions","href":"/product/features/actions"},{"title":"Webhooks","sidebarTitle":"Webhooks","description":"Have Fluents tell your own systems when something happens on a call, without the agent waiting for a reply.","href":"/product/features/webhook"},{"title":"Web Widget","sidebarTitle":"Web Widget","href":"/product/features/widget"}]},{"title":"Early Access","sidebarTitle":"Early Access","icon":"flask","href":"/product/features/experimental-feature"},{"group":"Account","icon":"user-gear","pages":[{"title":"Sign up","sidebarTitle":"Sign up","href":"/product/features/account/sign-up"},{"title":"Settings","sidebarTitle":"Settings","href":"/product/features/account/settings"},{"title":"Get API key","sidebarTitle":"Get API key","href":"/product/features/account/get-api-key"}]}]}]},{"anchor":"Integrations","icon":"book","pages":[{"title":"Integrations","href":"/product/integrations/active-campaign"}]},{"anchor":"API Documentation","icon":"rectangle-terminal","pages":[{"title":"API Documentation","href":"/api-reference/account_connections/get-account-connection"}]},{"anchor":"Contact","icon":"envelope","href":"mailto:support@fluents.ai"}]},"title":"Actions - Fluents","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-Cz91mEGH.js","DynamicMarkdown-a8hUKrw6.js","zoom-image-lightbox-CaUwvYH3.js","lightbox-handle-r17bVUz3.js"]}