Goal bots and task agents are the same object. The two engines merged; /api/goal-bots
and /api/tasks are aliases over one collection and return identical bodies. Every response
carries both goalBot and taskAgent (or goalBots and taskAgents) so integrations written
against either name keep working.The older stage-based engine moved to /api/instructions
and is being retired.
A goal bot is one prompt plus the tags that wake it. There are no stages — tag a lead and the
bot handles their replies.
A new bot is live the moment it is created and will start answering leads whose tags already
match. Pass "status": "paused" if you want to create it, read it back, and switch it on
deliberately.
The instructions the model runs on — who it is, what it is trying to do, what it must not say.
An empty or missing prompt returns 400 Prompt is required.
active or paused. A new bot goes live the moment it exists and starts answering leads
whose tags already match, so pass "paused" when you want to create, inspect, then flip it on
with PATCH. Any value other than "paused" is
stored as active.
When the bot searches your knowledge base. always searches on every inbound message;
auto leaves the decision to the model. On create, anything other than "auto" is stored as always.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tuco AI","colors":{"primary":"#FF3515","light":"#FFF5F2","dark":"#111827"},"logo":{"light":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/light.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=c601a209f9f05fe52c2cd2e67d63adeb","dark":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/dark.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=2d4cbb7e9dea8411a50d67377ca76578"},"favicon":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/images/tuco_v1_round.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=0c579fbfd834a8ce1afe94ec9a63c4a6","api":{"openapi":"api-reference/openapi.json","mdx":{"auth":{"method":"bearer"},"server":"https://app.tuco.ai"}},"navbar":{"links":[{"href":"mailto:support@tuco.ai","label":"Support"}],"primary":{"type":"button","label":"Get Started","href":"https://app.tuco.ai"}},"footer":{"socials":{"x":"https://x.com/tucoai","linkedin":"https://linkedin.com/company/tuco-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.tuco.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tucoai","hasAudioNarration":false,"actualSubdomain":"tucoai","customDomains":["docs.tuco.ai"],"gitSource":{"type":"github","owner":"goforbg","repo":"tuco-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae277d9aa176457dc3a2234","collectionId":"ebacd0bf-09db-4284-9b11-da57791e1639","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae277d9aa176457dc3a2234"},"entitlements":{},"buildId":"6ae277d9aa176457dc3a2234","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":96},{"language":"default","tag":"Documentation","count":63},{"language":"default","tag":"Lines \u0026 Leads","count":19},{"language":"default","tag":"Messages","count":14},{"language":"default","tag":"Goal Bots","count":14},{"language":"default","tag":"Webhooks","count":13},{"language":"default","tag":"iMessage Guides","count":13},{"language":"default","tag":"Agency","count":11},{"language":"default","tag":"Integrations","count":8},{"language":"default","tag":"Core Features","count":6}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","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":"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":"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":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoint/create-goal-bot","slug":"/api-reference/endpoint/create-goal-bot","pageMetadata":{"title":"Create Goal Bot","api":"POST /api/goal-bots","description":"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.","href":"/api-reference/endpoint/create-goal-bot"},"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: \"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.\"\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,ParamField,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(Note,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Goal bots and task agents are the same object.`}),` The two engines merged; `,_jsx(_components.code,{children:`/api/goal-bots`}),`\nand `,_jsx(_components.code,{children:`/api/tasks`}),` are aliases over one collection and return identical bodies. Every response\ncarries both `,_jsx(_components.code,{children:`goalBot`}),` and `,_jsx(_components.code,{children:`taskAgent`}),` (or `,_jsx(_components.code,{children:`goalBots`}),` and `,_jsx(_components.code,{children:`taskAgents`}),`) so integrations written\nagainst either name keep working.`]}),_jsxs(_components.p,{children:[`The older stage-based engine moved to `,_jsx(_components.a,{href:`/api-reference/endpoint/list-instruction-bots`,children:_jsx(_components.code,{children:`/api/instructions`})}),`\nand is being retired.`]})]}),`\n`,_jsx(_components.p,{children:`A goal bot is one prompt plus the tags that wake it. There are no stages — tag a lead and the\nbot handles their replies.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`A new bot is `,_jsx(_components.strong,{children:`live the moment it is created`}),` and will start answering leads whose tags already\nmatch. Pass `,_jsx(_components.code,{children:`\"status\": \"paused\"`}),` if you want to create it, read it back, and switch it on\ndeliberately.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(_components.p,{children:`Pass your workspace API key as a Bearer token, or use a Clerk session token.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`Authorization:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tuco_xxxxxxxxxxxxx`})]}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request body`}),`\n`,_jsx(ParamField,{body:`name`,type:`string`,required:true,id:`param-name`,children:_jsxs(_components.p,{children:[`Display name for the bot. An empty or missing name returns `,_jsx(_components.code,{children:`400 Name is required`}),`.`]})}),`\n`,_jsx(ParamField,{body:`prompt`,type:`string`,required:true,id:`param-prompt`,children:_jsxs(_components.p,{children:[`The instructions the model runs on — who it is, what it is trying to do, what it must not say.\nAn empty or missing prompt returns `,_jsx(_components.code,{children:`400 Prompt is required`}),`.`]})}),`\n`,_jsx(ParamField,{body:`includeTags`,type:`string[]`,id:`param-include-tags`,children:_jsxs(_components.p,{children:[`Tags that wake this bot. A lead carrying any of them is handled by this bot when it replies.\nSet tags with `,_jsx(_components.a,{href:`/api-reference/endpoint/update-lead`,children:_jsx(_components.code,{children:`PATCH /api/leads/{id}`})}),`. Defaults to `,_jsx(_components.code,{children:`[]`}),`.`]})}),`\n`,_jsx(ParamField,{body:`excludeTags`,type:`string[]`,id:`param-exclude-tags`,children:_jsxs(_components.p,{children:[`Tags that keep a lead away from this bot, even when `,_jsx(_components.code,{children:`includeTags`}),` matches. Defaults to `,_jsx(_components.code,{children:`[]`}),`.`]})}),`\n`,_jsxs(ParamField,{body:`mode`,type:`string`,default:`autopilot`,id:`param-mode`,children:[_jsx(_components.p,{children:`How replies are delivered.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Behaviour`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`autopilot`})}),_jsx(_components.td,{children:`The bot replies on its own.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`copilot`})}),_jsx(_components.td,{children:`Every reply is saved as a draft for a human to approve.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`manual`})}),_jsxs(_components.td,{children:[`The bot is off. This is the only way to stop the built-in `,_jsx(_components.strong,{children:`Auto Replies`}),` bot, which cannot be deleted.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`draft`})}),_jsxs(_components.td,{children:[`Legacy alias for `,_jsx(_components.code,{children:`copilot`}),`, still accepted.`]})]})]})]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`An unrecognised value is `,_jsx(_components.strong,{children:`not`}),` rejected — it is silently stored as `,_jsx(_components.code,{children:`copilot`}),`. Read the\n`,_jsx(_components.code,{children:`mode`}),` back from the response to confirm what was saved.`]})})]}),`\n`,_jsx(ParamField,{body:`status`,type:`string`,default:`active`,id:`param-status`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`active`}),` or `,_jsx(_components.code,{children:`paused`}),`. A new bot goes live the moment it exists and starts answering leads\nwhose tags already match, so pass `,_jsx(_components.code,{children:`\"paused\"`}),` when you want to create, inspect, then flip it on\nwith `,_jsx(_components.a,{href:`/api-reference/endpoint/update-goal-bot`,children:_jsx(_components.code,{children:`PATCH`})}),`. Any value other than `,_jsx(_components.code,{children:`\"paused\"`}),` is\nstored as `,_jsx(_components.code,{children:`active`}),`.`]})}),`\n`,_jsx(ParamField,{body:`connector`,type:`string`,default:`calendly`,id:`param-connector`,children:_jsxs(_components.p,{children:[`Calendar used for booking: `,_jsx(_components.code,{children:`calendly`}),` or `,_jsx(_components.code,{children:`ghl_calendar`}),`. Any other value falls back to `,_jsx(_components.code,{children:`calendly`}),`.`]})}),`\n`,_jsx(ParamField,{body:`kbRetrieval`,type:`string`,default:`always`,id:`param-kb-retrieval`,children:_jsxs(_components.p,{children:[`When the bot searches your knowledge base. `,_jsx(_components.code,{children:`always`}),` searches on every inbound message;\n`,_jsx(_components.code,{children:`auto`}),` leaves the decision to the model. On create, anything other than `,_jsx(_components.code,{children:`\"auto\"`}),` is stored as `,_jsx(_components.code,{children:`always`}),`.`]})}),`\n`,_jsx(ParamField,{body:`tone`,type:`string`,id:`param-tone`,children:_jsxs(_components.p,{children:[`Free-text tone hint, e.g. `,_jsx(_components.code,{children:`\"warm and brief\"`}),`.`]})}),`\n`,_jsx(ParamField,{body:`canAsk`,type:`boolean`,default:`true`,id:`param-can-ask`,children:_jsxs(_components.p,{children:[`Whether the bot may ask the lead follow-up questions. Only an explicit `,_jsx(_components.code,{children:`false`}),` turns it off.`]})}),`\n`,_jsx(ParamField,{body:`typingIndicator`,type:`boolean`,default:`true`,id:`param-typing-indicator`,children:_jsxs(_components.p,{children:[`Send a typing signal before replying. Only an explicit `,_jsx(_components.code,{children:`false`}),` turns it off.`]})}),`\n`,_jsx(ParamField,{body:`maxTurns`,type:`number`,default:`8`,id:`param-max-turns`,children:_jsxs(_components.p,{children:[`How many times the bot may reply in one conversation. Clamped to `,_jsx(_components.code,{children:`1`}),`–`,_jsx(_components.code,{children:`20`}),`; a non-numeric or\nnon-positive value falls back to `,_jsx(_components.code,{children:`8`}),`.`]})}),`\n`,_jsx(ParamField,{body:`onDoneTag`,type:`string`,id:`param-on-done-tag`,children:_jsx(_components.p,{children:`Tag applied to the lead when the bot reaches its goal.`})}),`\n`,_jsx(ParamField,{body:`writeTagToCrm`,type:`boolean`,default:`false`,id:`param-write-tag-to-crm`,children:_jsxs(_components.p,{children:[`Push `,_jsx(_components.code,{children:`onDoneTag`}),` to the connected CRM as well as to Tuco. Only an explicit `,_jsx(_components.code,{children:`true`}),` enables it.`]})}),`\n`,_jsx(ParamField,{body:`allowedToolIds`,type:`string[]`,id:`param-allowed-tool-ids`,children:_jsxs(_components.p,{children:[`Ids of the API tools this bot may call, from `,_jsx(_components.a,{href:`/api-reference/endpoint/list-tools`,children:_jsx(_components.code,{children:`GET /api/campaign-tools`})}),`.\nOmit to allow none.`]})}),`\n`,_jsx(ParamField,{body:`collectFields`,type:`string[]`,id:`param-collect-fields`,children:_jsxs(_components.p,{children:[`Field names the bot should try to collect during the conversation, e.g. `,_jsx(_components.code,{children:`[\"email\", \"company\"]`}),`.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`Example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://app.tuco.ai/api/goal-bots\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer tuco_xxxxxxxxxxxxx\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"Demo follow-up\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"prompt\": \"You are Raj from Tuco. Book a 15-minute demo. Never quote a price.\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"includeTags\": [\"demo-requested\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"excludeTags\": [\"customer\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"mode\": \"copilot\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"status\": \"paused\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"maxTurns\": 6,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"onDoneTag\": \"demo-booked\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"collectFields\": [\"email\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(Heading,{level:`3`,id:`success-200-ok`,children:[`Success (`,_jsx(_components.code,{children:`200 OK`}),`)`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`23`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"goalBot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"6ac3ed5f71adb32c88d566df\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"workspaceId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"org_3CzFir0Fps4hHL4nbU9WQ6FR4ur\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Demo follow-up\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"prompt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"You are Raj from Tuco. Book a 15-minute demo. Never quote a price.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"connector\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"calendly\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"includeTags\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"demo-requested\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"excludeTags\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"customer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"copilot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"kbRetrieval\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"always\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"canAsk\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"maxTurns\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"onDoneTag\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"demo-booked\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"collectFields\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"writeTagToCrm\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"typingIndicator\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"paused\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"createdAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-05T18:33:03.511Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"updatedAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-05T18:33:03.511Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"taskAgent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`/* identical object */`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The response is `,_jsx(_components.code,{children:`200`}),`, not `,_jsx(_components.code,{children:`201`}),`. Read `,_jsx(_components.code,{children:`goalBot._id`}),` and use it on every `,_jsx(_components.code,{children:`{id}`}),` route.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`When`}),_jsx(_components.th,{children:`Body`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`name`}),` missing or blank`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{ \"error\": \"Name is required\" }`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`prompt`}),` missing or blank`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{ \"error\": \"Prompt is required\" }`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:`Key has no active workspace`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{ \"error\": \"No active workspace\" }`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`Missing or invalid API key`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{ \"error\": \"Unauthorized\" }`})})]})]})]})]})}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":"Create Goal Bot","api":"POST /api/goal-bots","description":"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.","href":"/api-reference/endpoint/create-goal-bot"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"Request body","slug":"request-body","depth":2,"children":[]},{"title":"Example","slug":"example","depth":2,"children":[{"title":"Success (200 OK)","slug":"success-200-ok","depth":3,"children":[]}]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{},"endpoint":{"title":"Create Goal Bot","path":"/api/goal-bots","servers":[{"url":"https://app.tuco.ai"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"name":[{"type":"string","description":"Display name for the bot. An empty or missing name returns `400 Name is required` .","required":true}],"prompt":[{"type":"string","description":"The instructions the model runs on — who it is, what it is trying to do, what it must not say. An empty or missing prompt returns `400 Prompt is required` .","required":true}],"includeTags":[{"type":"array","items":[{"type":"string"}],"description":"Tags that wake this bot. A lead carrying any of them is handled by this bot when it replies. Set tags with `PATCH /api/leads/{id}` . Defaults to `[]` ."}],"excludeTags":[{"type":"array","items":[{"type":"string"}],"description":"Tags that keep a lead away from this bot, even when `includeTags` matches. Defaults to `[]` ."}],"mode":[{"type":"string","description":"How replies are delivered. Value Behaviour `autopilot` The bot replies on its own. `copilot` Every reply is saved as a draft for a human to approve. `manual` The bot is off. This is the only way to stop the built-in Auto Replies bot, which cannot be deleted. `draft` Legacy alias for `copilot` , still accepted."}],"status":[{"type":"string","description":"`active` or `paused` . A new bot goes live the moment it exists and starts answering leads whose tags already match, so pass `\"paused\"` when you want to create, inspect, then flip it on with `PATCH` . Any value other than `\"paused\"` is stored as `active` ."}],"connector":[{"type":"string","description":"Calendar used for booking: `calendly` or `ghl_calendar` . Any other value falls back to `calendly` ."}],"kbRetrieval":[{"type":"string","description":"When the bot searches your knowledge base. `always` searches on every inbound message; `auto` leaves the decision to the model. On create, anything other than `\"auto\"` is stored as `always` ."}],"tone":[{"type":"string","description":"Free-text tone hint, e.g. `\"warm and brief\"` ."}],"canAsk":[{"type":"boolean","description":"Whether the bot may ask the lead follow-up questions. Only an explicit `false` turns it off."}],"typingIndicator":[{"type":"boolean","description":"Send a typing signal before replying. Only an explicit `false` turns it off."}],"maxTurns":[{"type":"number","description":"How many times the bot may reply in one conversation. Clamped to `1` – `20` ; a non-numeric or non-positive value falls back to `8` ."}],"onDoneTag":[{"type":"string","description":"Tag applied to the lead when the bot reaches its goal."}],"writeTagToCrm":[{"type":"boolean","description":"Push `onDoneTag` to the connected CRM as well as to Tuco. Only an explicit `true` enables it."}],"allowedToolIds":[{"type":"array","items":[{"type":"string"}],"description":"Ids of the API tools this bot may call, from `GET /api/campaign-tools` . Omit to allow none."}],"collectFields":[{"type":"array","items":[{"type":"string"}],"description":"Field names the bot should try to collect during the conversation, e.g. `[\"email\", \"company\"]` ."}]}}],"examples":{"example":{"value":{"name":"\u003cstring>","prompt":"\u003cstring>","includeTags":["\u003cstring>"],"excludeTags":["\u003cstring>"],"mode":"\u003cstring>","status":"\u003cstring>","connector":"\u003cstring>","kbRetrieval":"\u003cstring>","tone":"\u003cstring>","canAsk":true,"typingIndicator":true,"maxTurns":123,"onDoneTag":"\u003cstring>","writeTagToCrm":true,"allowedToolIds":["\u003cstring>"],"collectFields":["\u003cstring>"]}}}}}},"response":{},"deprecated":false}},"jsLinks":[],"subdomain":"tucoai","siteName":"Tuco AI","title":"Create Goal Bot - Tuco AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-05T19:29:11.136Z","originalFileLocation":"api-reference/endpoint/create-goal-bot.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=\"system\"}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=\"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tuco AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Goal Bot - Tuco AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tuco AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tucoai.mintlify.app/_mintlify/api/og/v2?division=Goal+Bots\u0026amp;title=Create+Goal+Bot\u0026amp;description=Create+a+goal+bot%3A+one+prompt%2C+the+tools+it+may+use%2C+and+the+tags+that+fire+it.+No+stages.+Pass+status+paused+to+create+it+dormant.\u0026amp;theme=6ee776b2be11f4145c07cfc0\u0026amp;signature=dead2b4ccd50ecf5bd4ead2eac4841f1fb07099061d0a3fc41cf8da454797983\">\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=\"Create Goal Bot - Tuco AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tucoai.mintlify.app/_mintlify/api/og/v2?division=Goal+Bots\u0026amp;title=Create+Goal+Bot\u0026amp;description=Create+a+goal+bot%3A+one+prompt%2C+the+tools+it+may+use%2C+and+the+tags+that+fire+it.+No+stages.+Pass+status+paused+to+create+it+dormant.\u0026amp;theme=6ee776b2be11f4145c07cfc0\u0026amp;signature=dead2b4ccd50ecf5bd4ead2eac4841f1fb07099061d0a3fc41cf8da454797983\">\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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tuco AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF3515\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/create-goal-bot.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tuco.ai/#organization\",\"name\":\"Tuco AI\",\"url\":\"https://docs.tuco.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/light.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=c601a209f9f05fe52c2cd2e67d63adeb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tuco.ai#website\",\"name\":\"Tuco AI\",\"url\":\"https://docs.tuco.ai\",\"publisher\":{\"@id\":\"https://docs.tuco.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot#webpage\",\"url\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot\",\"name\":\"Create Goal Bot\",\"description\":\"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.\",\"dateModified\":\"2026-10-05T19:29:11.136Z\",\"isPartOf\":{\"@id\":\"https://docs.tuco.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Goal Bots\",\"item\":\"https://docs.tuco.ai/api-reference/endpoint/list-goal-bots\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Goal Bot\",\"item\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot#apireference\",\"headline\":\"Create Goal Bot\",\"name\":\"Create Goal Bot\",\"description\":\"Create a goal bot: one prompt, the tools it may use, and the tags that fire it. No stages. Pass status paused to create it dormant.\",\"url\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/create-goal-bot#webpage\"},\"dateModified\":\"2026-10-05T19:29:11.136Z\",\"publisher\":{\"@id\":\"https://docs.tuco.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tuco.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tuco AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Tuco AI","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.tuco.ai"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Overview","icon":"code","href":"/api-reference/introduction"},{"title":"Tuco API Keys","icon":"key","href":"/api-reference/api-keys"},{"title":"Agency API Keys","icon":"building","href":"/api-reference/agency-api-keys"}]},{"group":"Webhooks","pages":[{"title":"Webhooks Overview","icon":"webhook","href":"/api-reference/endpoint/webhook"},{"title":"Message Webhooks","icon":"webhook","href":"/api-reference/message-webhooks"},{"title":"List Webhooks","api":"GET /api/webhooks","href":"/api-reference/endpoint/list-webhooks"},{"title":"Create Webhook","api":"POST /api/webhooks","href":"/api-reference/endpoint/create-webhook"},{"title":"Get Webhook","api":"GET /api/webhooks/{id}","href":"/api-reference/endpoint/get-webhook"},{"title":"Update Webhook","api":"PATCH /api/webhooks/{id}","href":"/api-reference/endpoint/update-webhook"},{"title":"Delete Webhook","api":"DELETE /api/webhooks/{id}","href":"/api-reference/endpoint/delete-webhook"},{"title":"Rotate Webhook Secret","api":"POST /api/webhooks/{id}/rotate-secret","href":"/api-reference/endpoint/rotate-webhook-secret"},{"title":"Send Test Webhook","api":"POST /api/webhooks/{id}/test","href":"/api-reference/endpoint/send-test-webhook"},{"title":"Webhook Health Check","api":"POST /api/webhooks/{id}/health-check","href":"/api-reference/endpoint/test-webhook"},{"title":"List Webhook Deliveries","api":"GET /api/webhooks/{id}/deliveries","href":"/api-reference/endpoint/list-webhook-deliveries"},{"title":"Get Webhook Delivery","api":"GET /api/webhooks/{id}/deliveries/{deliveryId}","href":"/api-reference/endpoint/get-webhook-delivery"},{"title":"Replay Webhook Delivery","api":"POST /api/webhooks/{id}/deliveries/{deliveryId}/replay","href":"/api-reference/endpoint/replay-webhook-delivery"}]},{"group":"Errors and status codes","pages":[{"title":"Errors \u0026 Status Codes","icon":"circle-exclamation","href":"/api-reference/errors"}]},{"group":"iMessage Availability","pages":[{"title":"Check iMessage Availability (Single Address)","api":"GET /api/check-availability","href":"/api-reference/endpoint/check-availability"},{"title":"Check iMessage Availability (Round-Robin)","api":"POST /api/check-availability-rr","href":"/api-reference/endpoint/check-availability-rr"},{"title":"Check iMessage Availability (Single Lead)","api":"GET /api/leads/check-availability","href":"/api-reference/endpoint/lead-check-availability"},{"title":"Bulk Availability Check Endpoint","api":"POST /api/leads/check-availability","href":"/api-reference/endpoint/bulk-check-availability"}]},{"group":"Messages","pages":[{"title":"Messages","icon":"paper-plane","href":"/api-reference/messages"},{"title":"Drip (bulk shock-absorber)","icon":"faucet-drip","href":"/api-reference/drip"},{"title":"Send Message","api":"POST /api/messages","href":"/api-reference/endpoint/send-message"},{"title":"Get Message History","api":"GET /api/messages","href":"/api-reference/endpoint/get-messages"},{"title":"Send Drip","api":"POST /api/drip","href":"/api-reference/endpoint/send-drip"},{"title":"Send Reaction","api":"POST /api/messages/react","href":"/api-reference/endpoint/send-reaction"},{"title":"Send Typing Indicator","api":"POST /api/messages/typing","href":"/api-reference/endpoint/send-typing-indicator"},{"title":"Send with Attachments","api":"POST /api/messages","href":"/api-reference/endpoint/send-with-attachments"},{"title":"Upload Attachment","openapi":"POST /api/attachments/upload","href":"/api-reference/upload-attachment"},{"title":"Cancel Pending Messages","api":"POST /api/messages/cancel-for-lead","href":"/api-reference/endpoint/cancel-for-lead"},{"title":"Read Fallback SMS Config","api":"GET /api/workspace/fallback-config","href":"/api-reference/endpoint/fallback-config"},{"title":"Update Fallback SMS Config","api":"PATCH /api/workspace/fallback-config","href":"/api-reference/endpoint/update-fallback-config"},{"title":"Atomic Duplicate Guard — POST /api/messages","href":"/imessage-double-send-guard"},{"title":"Message Status","api":"GET /api/messages/{messageId}/journey","href":"/api-reference/endpoint/message-journey"}]},{"group":"Voice / Calling","pages":[{"title":"Place a Call Endpoint","api":"POST /api/voice/calls","tag":"BETA","href":"/api-reference/endpoint/place-call"},{"title":"Get Call Recordings Endpoint","api":"GET /api/voice/recordings","tag":"BETA","href":"/api-reference/endpoint/get-recordings"},{"title":"List Recordings \u0026 Uploads Endpoint","api":"GET /api/attachments/list","tag":"BETA","href":"/api-reference/endpoint/list-recordings"}]},{"group":"Replies","pages":[{"title":"List Conversations","api":"GET /api/unibox/conversations","href":"/api-reference/endpoint/conversations"},{"title":"Check Replies","api":"GET /api/replies","href":"/api-reference/endpoint/get-replies"}]},{"group":"Do Not Contact","pages":[{"title":"List / Check Do-Not-Contact","openapi":"GET /api/dnc","href":"/api-reference/endpoint/list-dnc"},{"title":"Add to Do-Not-Contact","openapi":"POST /api/dnc","href":"/api-reference/endpoint/add-dnc"},{"title":"Bulk Add to Do-Not-Contact","openapi":"PATCH /api/dnc","href":"/api-reference/endpoint/bulk-add-dnc"}]},{"group":"Lines \u0026 Leads","pages":[{"title":"Lines API","icon":"phone","href":"/api-reference/lines"},{"title":"Get All Lines","api":"GET /api/lines/by-user","href":"/api-reference/endpoint/get-lines"},{"title":"Update a Line","api":"PATCH /api/lines/{id}","href":"/api-reference/endpoint/update-line"},{"title":"Line Plan Limits","api":"GET /api/lines/limits","href":"/api-reference/endpoint/line-limits"},{"title":"Calling Add-ons","api":"GET /api/lines/{id}/calling-addons","href":"/api-reference/endpoint/calling-addons"},{"title":"Leads API","icon":"users","href":"/api-reference/leads"},{"title":"Create / Upload Lead Endpoint","api":"POST /api/leads","href":"/api-reference/endpoint/create"},{"title":"Get \u0026 Search Leads","api":"GET /api/leads","href":"/api-reference/endpoint/get"},{"title":"Delete Lead Endpoint","api":"DELETE /api/leads","href":"/api-reference/endpoint/delete"},{"title":"List Lead Lists","api":"GET /api/lists","href":"/api-reference/endpoint/list-lists"},{"title":"Create Lead List","api":"POST /api/lists","href":"/api-reference/endpoint/create-list"},{"title":"Delete Lead List","api":"DELETE /api/lists","href":"/api-reference/endpoint/delete-list"},{"title":"List Custom Field Keys","api":"GET /api/leads/custom-field-keys","href":"/api-reference/endpoint/custom-field-keys"},{"title":"Create Line Request","api":"POST /api/line-requests","href":"/api-reference/endpoint/create-line-request"},{"title":"Get Line Request","api":"GET /api/line-requests/{id}","href":"/api-reference/endpoint/get-line-request"},{"title":"Manage Line Request","api":"POST /api/line-requests/{id}","href":"/api-reference/endpoint/manage-line-request"},{"title":"Cancel a Line","api":"POST /api/lines/cancel","href":"/api-reference/endpoint/cancel-line"},{"title":"Get Lead","api":"GET /api/leads/{id}","href":"/api-reference/endpoint/get-lead"},{"title":"Update Lead","api":"PATCH /api/leads/{id}","href":"/api-reference/endpoint/update-lead"}]},{"group":"Analytics","pages":[{"title":"Analytics","icon":"chart-line","href":"/api-reference/analytics"},{"title":"Analytics Insights","api":"GET /api/analytics/insights","href":"/api-reference/endpoint/analytics-insights"},{"title":"Analytics Day Conversations","api":"GET /api/analytics/conversations","href":"/api-reference/endpoint/analytics-conversations"}]},{"group":"Goal Bots","pages":[{"title":"List Goal Bots","api":"GET /api/goal-bots","description":"List all AI goal bots in your Tuco AI workspace — returns goal, persona, status (active or archived), approval mode, and enrollment counts for each bot.","href":"/api-reference/endpoint/list-goal-bots"},{"title":"Create Goal Bot","api":"POST /api/goal-bots","href":"/api-reference/endpoint/create-goal-bot"},{"title":"Get Goal Bot","api":"GET /api/goal-bots/{id}","description":"Fetch a Tuco AI goal bot by ID — returns goal definition, persona, knowledge base, approval mode, active enrollment count, and config metadata.","href":"/api-reference/endpoint/get-goal-bot"},{"title":"Update Goal Bot","api":"PATCH /api/goal-bots/{id}","href":"/api-reference/endpoint/update-goal-bot"},{"title":"Delete Goal Bot","api":"DELETE /api/goal-bots/{id}","href":"/api-reference/endpoint/archive-goal-bot"},{"title":"Simulate Goal Bot","api":"POST /api/goal-bots/{id}/simulate","href":"/api-reference/endpoint/simulate-goal-bot"},{"title":"Reply Hours","api":"GET|PUT|DELETE /api/goal-bots/{id}/reply-hours","href":"/api-reference/endpoint/reply-hours"},{"title":"List Instruction Bots (retired)","api":"GET /api/instructions","href":"/api-reference/endpoint/list-instruction-bots"},{"title":"List Task Agents","api":"GET /api/tasks","href":"/api-reference/endpoint/list-task-agents"},{"title":"Create Task Agent","api":"POST /api/tasks","href":"/api-reference/endpoint/create-task-agent"},{"title":"Update Task Agent","api":"PATCH /api/tasks/{id}","href":"/api-reference/endpoint/update-task-agent"},{"title":"Delete Task Agent","api":"DELETE /api/tasks/{id}","href":"/api-reference/endpoint/delete-task-agent"},{"title":"Enroll Lead (instruction bots)","api":"POST /api/instructions/{id}/enroll","href":"/api-reference/endpoint/enroll-lead"},{"title":"Unenroll Lead","api":"DELETE /api/goal-bots/{id}/enroll","href":"/api-reference/endpoint/unenroll-lead"}]},{"group":"API Tools","pages":[{"title":"List API Tools","api":"GET /api/campaign-tools","href":"/api-reference/endpoint/list-tools"},{"title":"Create or Update API Tool","api":"POST /api/campaign-tools","href":"/api-reference/endpoint/save-tool"},{"title":"Delete API Tool","api":"DELETE /api/campaign-tools","href":"/api-reference/endpoint/delete-tool"},{"title":"Test API Tool","api":"POST /api/campaign-tools/test","href":"/api-reference/endpoint/test-tool"}]},{"group":"Agency","pages":[{"title":"Agency API Keys","icon":"building","href":"/api-reference/agency-api-keys"},{"title":"List Agency Workspaces","api":"GET /api/agency/subaccounts","href":"/api-reference/endpoint/agency-list-workspaces"},{"title":"Create Agency Workspace","api":"POST /api/agency/subaccounts","href":"/api-reference/endpoint/agency-create-workspace"},{"title":"Re-mint a Client Workspace Key","api":"POST /api/agency/workspace-keys","href":"/api-reference/endpoint/agency-workspace-keys"},{"title":"List Agency Lines","api":"GET /api/agency/lines","href":"/api-reference/endpoint/agency-list-lines"},{"title":"Move a Line Between Workspaces","api":"POST /api/agency/lines","href":"/api-reference/endpoint/agency-move-line"},{"title":"Agency Overview Stats","api":"GET /api/agency/overview","href":"/api-reference/endpoint/agency-overview"},{"title":"Agency Email Preferences","api":"POST /api/agency/email-preferences","href":"/api-reference/endpoint/agency-email-preferences"},{"title":"Agency Webhooks","api":"POST /api/agency/webhooks","href":"/api-reference/endpoint/agency-webhooks"},{"title":"Subscribe a Client to a Plan","api":"POST /api/agency/billing/subscribe","href":"/api-reference/endpoint/agency-subscribe"},{"title":"Monthly Statement","api":"GET /api/agency/statement","href":"/api-reference/endpoint/agency-statement"}]},{"group":"Workspace settings","pages":[{"title":"Workspace Email Preferences","api":"POST /api/email-preferences","href":"/api-reference/endpoint/email-preferences"},{"title":"Invite a Teammate","api":"POST /api/team/invite","href":"/api-reference/endpoint/team-invite"},{"title":"Force a Line Health Check","api":"GET /api/lines/check-availability","href":"/api-reference/endpoint/line-health-check"}]}]}]},"title":"Create Goal Bot - Tuco AI","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js"]}