Tell your Verb the outcome you want, including inputs, permissions, and where messages should go:
Create a /poll command with a question and up to four choices.Post it publicly and let members vote with numbered reactions.
The agent can create and revise connected commands, events, schedules, variables, forms, and message templates. You can ask it to change an existing project instead of starting again.Agent changes are saved when successfully applied. Review the resulting blocks and test them in Discord; a saved project or preview isn’t proof that the live bot completed an action.Use the agent’s history to revisit runs and its undo option where available. Undo restores builder configuration, not actions already taken in Discord, such as messages sent or channels deleted.
The Builder Agent is experimental. Check permissions and test in a private channel before using moderation or other destructive actions.
Your plan includes a daily agent-message allowance shared across your account. It resets at midnight UTC. Manual canvas editing doesn’t use this allowance.
Create a Command, Event, or Timed Event. Commands run from a slash command; events react to things such as a member joining or a button click; timed events run on a schedule.
2
Add inputs and actions
Add command options such as text or a member. Add the actions the bot should perform, then connect the blocks from the trigger through the whole flow.
3
Add safeguards and a response
Check permissions before moderation actions. Add a connected Send or Edit a Message block if people should receive a result.
4
Save and test
Manual edits stay local until you select Save. The bot runs the saved version. Test the actual command or event in Discord and check both the action and its response.
A simple flow is: trigger → inputs → permission check → action → message. Unconnected blocks won’t run.
Use Message Builder inside a message action to arrange text, accent-color cards, images, dividers, files, buttons, and dropdowns. New layouts use Discord Components V2 rather than classic embeds.For a button or dropdown, use When used… to choose a private reply, a form, or an interaction flow. Save the target event project before linking it. Discord allows 40 total components, including nested ones.Older embed messages are converted when opened in the visual editor. Review the result before saving; the layout may not match the old embed exactly.Message and template prose is a brief for your Verb: it composes the delivered wording in character using the inputs and confirmed action results. Buttons, choices, links, and other structured values stay intact. If AI wording is unavailable, the saved prose is not sent as a canned fallback.
Use Variables for values such as a counter or saved channel ID. Choose the scope that matches the job: global, server, channel, or user. A user’s score should use user scope, not one shared global value.The variable picker also offers built-in values, such as the current user, channel, and command options. Insert them from the picker instead of guessing a token name.Save reusable flows and message layouts as templates when you need them in multiple projects.
Timed events can run once or on a recurring schedule. Set the destination channel and timezone explicitly.Events can receive webhook requests or handle button clicks and form submissions. Keep webhook secrets private and validate external input before using it in privileged actions.If a flow fails, check its connections, saved version, referenced resources, and bot permissions. See Troubleshooting.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Verba Docs","colors":{"primary":"#1E40AF","light":"#60A5FA","dark":"#3B82F6"},"logo":{"light":"https://mintcdn.com/verba-f189fc2e/3IDjhQU1td2rcmp8/logo/verba-docs-light.png?fit=max\u0026auto=format\u0026n=3IDjhQU1td2rcmp8\u0026q=85\u0026s=b064fd8c47a0f4c41329f4fe361fc871","dark":"https://mintcdn.com/verba-f189fc2e/3IDjhQU1td2rcmp8/logo/verba-docs-dark.png?fit=max\u0026auto=format\u0026n=3IDjhQU1td2rcmp8\u0026q=85\u0026s=489292abaf6f6898956994b7c6ad3104"},"favicon":"https://mintcdn.com/verba-f189fc2e/3IDjhQU1td2rcmp8/favicon.png?fit=max\u0026auto=format\u0026n=3IDjhQU1td2rcmp8\u0026q=85\u0026s=1275ec8215ec7f09359baa65a9cdc555","navbar":{"links":[{"href":"https://discord.gg/verba","label":"Community"},{"href":"https://status.verba.ink","label":"Status"},{"href":"https://home.verba.ink/billing","label":"Billing"}],"primary":{"type":"button","label":"Open Verba","href":"https://home.verba.ink"}},"footer":{"socials":{"discord":"https://discord.gg/verba","x":"https://x.com/VerbaInk"},"links":[{"header":"Verba","items":[{"label":"Open the app","href":"https://home.verba.ink"},{"label":"Chat","href":"https://chat.verba.ink"},{"label":"Billing","href":"https://home.verba.ink/billing"}]},{"header":"Help","items":[{"label":"Troubleshooting","href":"/guides/troubleshooting"},{"label":"Community","href":"https://discord.gg/verba"},{"label":"Service status","href":"https://status.verba.ink"}]},{"header":"Legal","items":[{"label":"Privacy","href":"https://home.verba.ink/privacy"},{"label":"Terms","href":"https://home.verba.ink/terms"}]}]},"fonts":{"family":"Space Grotesk"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"verba-f189fc2e","hasAudioNarration":false,"actualSubdomain":"verba-f189fc2e","customDomains":["docs.verba.ink"],"gitSource":{"type":"github","owner":"ltlani","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6acb7f83b95c03c4feb2ccea","collectionId":"406f9dc6-8760-46fb-9a1d-1551bb921b88","liveDeploymentHistoryId":"6acb7f83b95c03c4feb2ccea","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6acb7f83b95c03c4feb2ccea","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Integrations","count":7},{"language":"default","tag":"Your Verb","count":6},{"language":"default","tag":"Help","count":3},{"language":"default","tag":"Build","count":2},{"language":"default","tag":"Start","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"styles.css","content":":root{--verba-scrollbar-color: hsl(215.4 16.3% 46.9% / 0.45);--verba-scrollbar-thumb: hsl(215.4 16.3% 46.9% / 0.35);--verba-scrollbar-thumb-hover: hsl(215.4 16.3% 46.9% / 0.55)}html.dark{--verba-scrollbar-color: hsl(215 20.2% 65.1% / 0.45);--verba-scrollbar-thumb: hsl(215 20.2% 65.1% / 0.35);--verba-scrollbar-thumb-hover: hsl(215 20.2% 65.1% / 0.55)}*{scrollbar-width:thin;scrollbar-color:var(--verba-scrollbar-color) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--verba-scrollbar-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:var(--verba-scrollbar-thumb-hover)}.nav-logo img{height:1.25rem!important;width:auto!important;max-width:none!important;object-fit:contain}"}],"page":{"pagePath":"guides/custom-builder","slug":"/guides/custom-builder","pageMetadata":{"title":"Discord builder","description":"Create commands, events, and automations with your Verb.","href":"/guides/custom-builder"},"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 commands, events, and automations with your Verb.\"\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Step,Steps,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Discord → Custom Builder`}),` after connecting your bot. Build on the canvas, or ask the Builder Agent to create a system from a description.`]}),`\n`,_jsx(Heading,{level:`2`,id:`builder-agent`,children:`Builder Agent`}),`\n`,_jsx(_components.p,{children:`Tell your Verb the outcome you want, including inputs, permissions, and where messages should go:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Create a /poll command with a question and up to four choices.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Post it publicly and let members vote with numbered reactions.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The agent can create and revise connected commands, events, schedules, variables, forms, and message templates. You can ask it to change an existing project instead of starting again.`}),`\n`,_jsx(_components.p,{children:`Agent changes are saved when successfully applied. Review the resulting blocks and test them in Discord; a saved project or preview isn’t proof that the live bot completed an action.`}),`\n`,_jsx(_components.p,{children:`Use the agent’s history to revisit runs and its undo option where available. Undo restores builder configuration, not actions already taken in Discord, such as messages sent or channels deleted.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`The Builder Agent is experimental. Check permissions and test in a private channel before using moderation or other destructive actions.`})}),`\n`,_jsxs(_components.p,{children:[`Your `,_jsx(_components.a,{href:`/guides/plans-and-limits`,children:`plan`}),` includes a daily agent-message allowance shared across your account. It resets at midnight UTC. Manual canvas editing doesn’t use this allowance.`]}),`\n`,_jsx(Heading,{level:`2`,id:`build-manually`,children:`Build manually`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Choose a trigger`,children:_jsxs(_components.p,{children:[`Create a `,_jsx(_components.strong,{children:`Command`}),`, `,_jsx(_components.strong,{children:`Event`}),`, or `,_jsx(_components.strong,{children:`Timed Event`}),`. Commands run from a slash command; events react to things such as a member joining or a button click; timed events run on a schedule.`]})}),_jsx(Step,{title:`Add inputs and actions`,children:_jsx(_components.p,{children:`Add command options such as text or a member. Add the actions the bot should perform, then connect the blocks from the trigger through the whole flow.`})}),_jsx(Step,{title:`Add safeguards and a response`,children:_jsxs(_components.p,{children:[`Check permissions before moderation actions. Add a connected `,_jsx(_components.strong,{children:`Send or Edit a Message`}),` block if people should receive a result.`]})}),_jsx(Step,{title:`Save and test`,children:_jsxs(_components.p,{children:[`Manual edits stay local until you select `,_jsx(_components.strong,{children:`Save`}),`. The bot runs the saved version. Test the actual command or event in Discord and check both the action and its response.`]})})]}),`\n`,_jsx(_components.p,{children:`A simple flow is: trigger → inputs → permission check → action → message. Unconnected blocks won’t run.`}),`\n`,_jsx(Heading,{level:`2`,id:`message-layouts-and-components-v2`,children:`Message layouts and Components V2`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Message Builder`}),` inside a message action to arrange text, accent-color cards, images, dividers, files, buttons, and dropdowns. New layouts use `,_jsx(_components.strong,{children:`Discord Components V2`}),` rather than classic embeds.`]}),`\n`,_jsxs(_components.p,{children:[`For a button or dropdown, use `,_jsx(_components.strong,{children:`When used…`}),` to choose a private reply, a form, or an interaction flow. Save the target event project before linking it. Discord allows `,_jsx(_components.a,{href:`https://docs.discord.com/developers/components/reference`,children:`40 total components, including nested ones`}),`.`]}),`\n`,_jsx(_components.p,{children:`Older embed messages are converted when opened in the visual editor. Review the result before saving; the layout may not match the old embed exactly.`}),`\n`,_jsx(_components.p,{children:`Message and template prose is a brief for your Verb: it composes the delivered wording in character using the inputs and confirmed action results. Buttons, choices, links, and other structured values stay intact. If AI wording is unavailable, the saved prose is not sent as a canned fallback.`}),`\n`,_jsx(Heading,{level:`2`,id:`variables-and-templates`,children:`Variables and templates`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Variables`}),` for values such as a counter or saved channel ID. Choose the scope that matches the job: global, server, channel, or user. A user’s score should use user scope, not one shared global value.`]}),`\n`,_jsx(_components.p,{children:`The variable picker also offers built-in values, such as the current user, channel, and command options. Insert them from the picker instead of guessing a token name.`}),`\n`,_jsx(_components.p,{children:`Save reusable flows and message layouts as templates when you need them in multiple projects.`}),`\n`,_jsx(Heading,{level:`2`,id:`schedules-webhooks-and-forms`,children:`Schedules, webhooks, and forms`}),`\n`,_jsx(_components.p,{children:`Timed events can run once or on a recurring schedule. Set the destination channel and timezone explicitly.`}),`\n`,_jsx(_components.p,{children:`Events can receive webhook requests or handle button clicks and form submissions. Keep webhook secrets private and validate external input before using it in privileged actions.`}),`\n`,_jsxs(_components.p,{children:[`If a flow fails, check its connections, saved version, referenced resources, and bot permissions. See `,_jsx(_components.a,{href:`/guides/troubleshooting#builder`,children:`Troubleshooting`}),`.`]})]})}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":"Discord builder","description":"Create commands, events, and automations with your Verb.","href":"/guides/custom-builder"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Builder Agent","slug":"builder-agent","depth":2,"children":[]},{"title":"Build manually","slug":"build-manually","depth":2,"children":[]},{"title":"Message layouts and Components V2","slug":"message-layouts-and-components-v2","depth":2,"children":[]},{"title":"Variables and templates","slug":"variables-and-templates","depth":2,"children":[]},{"title":"Schedules, webhooks, and forms","slug":"schedules-webhooks-and-forms","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"verba-f189fc2e","siteName":"Verba Docs","title":"Discord builder - Verba Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T14:39:13.905Z","originalFileLocation":"guides/custom-builder.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 commands, events, and automations with your Verb.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Verba Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/verba-f189fc2e/XKBmTHdkG__OyU3Y/_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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/verba-f189fc2e/XKBmTHdkG__OyU3Y/_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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Discord builder - Verba Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create commands, events, and automations with your Verb.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Verba Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.verba.ink/guides/custom-builder\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://verba-f189fc2e.mintlify.app/_mintlify/api/og/v2?division=Build\u0026amp;title=Discord+builder\u0026amp;description=Create+commands%2C+events%2C+and+automations+with+your+Verb.\u0026amp;theme=898a4fb924f73146f3a9e011\u0026amp;signature=a4451cf9831118b8780b6997e36e72dee72a5df45f99721a984d1107357cf1b3\">\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=\"Discord builder - Verba Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create commands, events, and automations with your Verb.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://verba-f189fc2e.mintlify.app/_mintlify/api/og/v2?division=Build\u0026amp;title=Discord+builder\u0026amp;description=Create+commands%2C+events%2C+and+automations+with+your+Verb.\u0026amp;theme=898a4fb924f73146f3a9e011\u0026amp;signature=a4451cf9831118b8780b6997e36e72dee72a5df45f99721a984d1107357cf1b3\">\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/verba-f189fc2e/XKBmTHdkG__OyU3Y/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Verba Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1E40AF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.verba.ink/guides/custom-builder\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/custom-builder.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.verba.ink/#organization\",\"name\":\"Verba Docs\",\"url\":\"https://docs.verba.ink\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/verba-f189fc2e/3IDjhQU1td2rcmp8/logo/verba-docs-light.png?fit=max\u0026auto=format\u0026n=3IDjhQU1td2rcmp8\u0026q=85\u0026s=b064fd8c47a0f4c41329f4fe361fc871\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.verba.ink#website\",\"name\":\"Verba Docs\",\"url\":\"https://docs.verba.ink\",\"publisher\":{\"@id\":\"https://docs.verba.ink/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.verba.ink/guides/custom-builder#webpage\",\"url\":\"https://docs.verba.ink/guides/custom-builder\",\"name\":\"Discord builder\",\"description\":\"Create commands, events, and automations with your Verb.\",\"dateModified\":\"2026-10-01T14:39:13.905Z\",\"isPartOf\":{\"@id\":\"https://docs.verba.ink#website\"},\"breadcrumb\":{\"@id\":\"https://docs.verba.ink/guides/custom-builder#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.verba.ink/guides/custom-builder#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Verba Docs\",\"item\":\"https://docs.verba.ink\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Discord builder\",\"item\":\"https://docs.verba.ink/guides/custom-builder\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.verba.ink/guides/custom-builder#article\",\"headline\":\"Discord builder\",\"name\":\"Discord builder\",\"description\":\"Create commands, events, and automations with your Verb.\",\"url\":\"https://docs.verba.ink/guides/custom-builder\",\"mainEntityOfPage\":{\"@id\":\"https://docs.verba.ink/guides/custom-builder#webpage\"},\"dateModified\":\"2026-10-01T14:39:13.905Z\",\"publisher\":{\"@id\":\"https://docs.verba.ink/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.verba.ink#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Verba Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Verba Docs","nav":{"global":null,"groups":[{"group":"Start","pages":[{"title":"Welcome to Verba","href":"/index"},{"title":"Create your first Verb","href":"/quickstart"}]},{"group":"Your Verb","pages":[{"title":"Personality and profile","href":"/guides/personality-playbook"},{"title":"AI Engine","href":"/guides/ai-engine"},{"title":"Memory, knowledge, and training","href":"/guides/memory-and-knowledge"},{"title":"Create images","href":"/guides/image-generation"},{"title":"Gallery","href":"/guides/gallery"},{"title":"Voice and audio","href":"/guides/voice-and-audio"}]},{"group":"Integrations","pages":[{"title":"Verba Chat","href":"/guides/chat-and-groups"},{"title":"Discord","href":"/guides/discord"},{"title":"Telegram","href":"/guides/telegram"},{"title":"WhatsApp","href":"/guides/whatsapp"},{"title":"Slack","href":"/guides/slack"},{"title":"Twitch","href":"/guides/twitch"},{"title":"Email","description":"Give your Verb an address for threaded email conversations.","href":"/guides/email"}]},{"group":"Build","pages":[{"title":"Discord builder","href":"/guides/custom-builder"},{"title":"API","description":"Add your Verb's character chat and image generation to an app.","href":"/guides/api"}]},{"group":"Help","pages":[{"title":"Plans and credits","href":"/guides/plans-and-limits"},{"title":"Account and privacy","href":"/guides/account-and-security"},{"title":"Troubleshooting","href":"/guides/troubleshooting"}]}]},"basePath":"","title":"Discord builder - Verba Docs","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":[],"chunks":[]}