You can use Twilio in your Superblocks applications through the API interface. This allows you to programmatically send messages, manage phone numbers, and interact with Twilio’s services. In addition to generic HTTP requests, Twilio supports the following actions.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Superblocks Docs","colors":{"primary":"#0099FF","light":"#0099FF","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/superblocks/ohww6-Z99ndA0n1k/logo/sb_logo_light.png?fit=max\u0026auto=format\u0026n=ohww6-Z99ndA0n1k\u0026q=85\u0026s=156967bb5e753292ee4e82a1b546f594","dark":"https://mintcdn.com/superblocks/ohww6-Z99ndA0n1k/logo/sb_logo_dark.png?fit=max\u0026auto=format\u0026n=ohww6-Z99ndA0n1k\u0026q=85\u0026s=b0ebe9dd23e0506309c04aa8f6e62c8a"},"favicon":"https://mintcdn.com/superblocks/bKXJZ0WLJtmaDm_J/favicon.png?fit=max\u0026auto=format\u0026n=bKXJZ0WLJtmaDm_J\u0026q=85\u0026s=c94fccc0bae1e12d03eab7cd0f5b3ae4","appearance":{"default":"light","strict":false},"navbar":{"links":[{"href":"https://superblocks.com","label":"Website"}]},"footer":{"socials":{"github":"https://github.com/superblocksteam","linkedin":"https://linkedin.com/company/superblockshq"}},"seo":{"metatags":{"canonical":"https://docs.superblocks.com","google-site-verification":"GRlSViNmYAh8zaaBQBQ77n_bBxqNzUsH3bvSka5rgII"},"indexing":"all"},"fonts":{"family":"Inter"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"superblocks","hasAudioNarration":false,"actualSubdomain":"superblocks","customDomains":["docs.superblocks.com"],"gitSource":{"type":"github","owner":"superblocksteam","repo":"docs-v2","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4a7bd812f7e980ce59587","collectionId":"a52cd16c-2c4b-4a0c-ade7-bd22ca9a0286","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4a7bd812f7e980ce59587"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4a7bd812f7e980ce59587","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Admin guide","count":56},{"language":"default","tag":"Builder guide","count":37},{"language":"default","tag":"Enterprise deployment \u0026 security","count":35},{"language":"default","tag":"Enterprise deployment","count":31},{"language":"default","tag":"Org administration","count":27},{"language":"default","tag":"Integrations","count":23},{"language":"default","tag":"Hybrid","count":21},{"language":"default","tag":"Building with Clark AI","count":20},{"language":"default","tag":"Governance","count":17},{"language":"default","tag":"Authentication \u0026 authorization","count":14}]},"assistantConfig":{"deflection":{"enabled":true,"email":"help@superblocks.com"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":"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":"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}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","href":"/_mintlify/custom/superblocks/b87535027e103c25/styles.css"}],"page":{"pagePath":"integrations/integrations-library/twilio","slug":"/integrations/integrations-library/twilio","pageMetadata":{"title":"Twilio","icon":"https://integrations.superblocks.com/img/twilio.png","description":null,"href":"/integrations/integrations-library/twilio"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const IntegrationSuccess=({integrationName})=>{const _components={a:`a`,..._provideComponents()};return _jsxs(`p`,{children:[_jsxs(`b`,{children:[integrationName,` connected!`]}),_jsx(`br`,{}),`You can now use`,` `,_jsx(_components.a,{href:`/building-with-clark`,children:`Clark to build`}),` with `,integrationName,`.`]})};const DynamicIntegrationActions=({integrationId,maxActions=20})=>{const _components={a:`a`,..._provideComponents()};const[actions,setActions]=useState([]);const[loading,setLoading]=useState(true);const[error,setError]=useState(null);const[showAll,setShowAll]=useState(false);useEffect(()=>{const fetchIntegrationSpec=async()=>{try{setLoading(true);const response=await fetch(`https://integrations.superblocks.com/openapi/${integrationId}.yaml`);if(!response.ok){throw new Error(`Failed to fetch integration spec: ${response.status}`)}const yamlText=await response.text();const actions=parseActionsFromYaml(yamlText);setActions(actions);setError(null)}catch(err){setError(err.message);setActions(getFallbackActions(integrationId))}finally{setLoading(false)}};fetchIntegrationSpec()},[integrationId]);const parseActionsFromYaml=yamlText=>{const actions=[];const summaryRegex=/summary:[ \\t]+(.+)/g;let match;while((match=summaryRegex.exec(yamlText))!==null){const summary=match[1].trim();if(summary\u0026\u0026summary.length>0){actions.push({summary,description:`API action: ${summary.toLowerCase()}`})}}return actions.slice(0,50)};const getFallbackActions=integrationId=>{const fallbackActions={slack:[{summary:`Send Message`,description:`Send a message to a Slack channel or user`},{summary:`Get Channel Info`,description:`Retrieve information about a Slack channel`},{summary:`List Channels`,description:`Get a list of channels in the workspace`},{summary:`Get User Info`,description:`Retrieve information about a Slack user`},{summary:`List Users`,description:`Get a list of users in the workspace`}],github:[{summary:`Get Repository`,description:`Retrieve information about a repository`},{summary:`List Issues`,description:`Get a list of issues in a repository`},{summary:`Create Issue`,description:`Create a new issue in a repository`},{summary:`List Pull Requests`,description:`Get a list of pull requests`},{summary:`Create Pull Request`,description:`Create a new pull request`}]};return fallbackActions[integrationId]||[{summary:`Generic Action`,description:`Perform actions with this integration`}]};if(loading){return _jsxs(`div`,{children:[_jsxs(`p`,{children:[`Loading actions for `,integrationId,`...`]}),_jsx(`div`,{style:{display:`inline-flex`,flexWrap:`wrap`,gap:`0.5em`,marginTop:`8px`},children:[...Array(8)].map((_,i)=>_jsx(`div`,{style:{alignItems:`center`,padding:`2px 6px`,borderRadius:`32px`,border:`1px solid var(--superblocks-accent-blue-subtle)`,background:`var(--superblocks-accent-blue-subtle)`,height:`20px`,width:`${Math.random()*100+80}px`},children:_jsx(`div`,{style:{height:`12px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,width:`100%`}})},i))})]})}if(error){}const displayedActions=showAll?actions:actions.slice(0,maxActions);const hiddenCount=actions.length-maxActions;return _jsxs(`div`,{children:[actions.length===0\u0026\u0026_jsxs(`p`,{style:{color:`red`,fontWeight:`bold`},children:[`No actions found for `,integrationId,`. Check console for errors.`]}),_jsxs(`div`,{style:{display:`inline-flex`,flexWrap:`wrap`,gap:`0.5em`,marginTop:`8px`},children:[displayedActions.map((action,index)=>_jsx(`div`,{style:{alignItems:`center`,padding:`4px 8px`,borderRadius:`32px`,border:`1px solid var(--superblocks-accent-blue-subtle)`,background:`var(--superblocks-accent-blue-subtle)`,transition:`display 0.3ms ease-in`},children:_jsx(`h4`,{style:{color:`var(--ifm-color-primary-darker)`,marginBottom:`unset`,alignSelf:`center`,fontSize:`12px`,fontStyle:`normal`,fontWeight:`500`,lineHeight:`16px`,margin:`0`,padding:`0`},children:action.summary})},index)),showAll\u0026\u0026_jsx(_components.a,{href:`https://app.superblocks.com/integrations/${integrationId===`openai`?`openai_v2`:integrationId}`,target:`_blank`,rel:`noopener noreferrer`,style:{color:`var(--ifm-color-primary)`,fontSize:`12px`,textDecoration:`none`,border:`none`,borderBottom:`none`,padding:`4px 0`,marginLeft:`8px`,alignSelf:`center`,whiteSpace:`nowrap`},children:`See full list in app →`})]}),!showAll\u0026\u0026hiddenCount>0\u0026\u0026_jsx(`div`,{style:{marginTop:`8px`,textAlign:`center`},children:_jsxs(`button`,{onClick:()=>setShowAll(true),style:{background:`none`,border:`none`,color:`#6c7989`,cursor:`pointer`,textDecoration:`underline`,fontSize:`14px`},children:[`and `,hiddenCount,` more`]})}),showAll\u0026\u0026hiddenCount>0\u0026\u0026_jsx(`div`,{style:{marginTop:`8px`,textAlign:`center`},children:_jsx(`button`,{onClick:()=>setShowAll(false),style:{background:`none`,border:`none`,color:`#6c7989`,cursor:`pointer`,textDecoration:`underline`,fontSize:`14px`},children:`show less`})})]})};const DynamicIntegrationSetup=({integrationId,title})=>{const[setupContent,setSetupContent]=useState(null);const[loading,setLoading]=useState(true);const[error,setError]=useState(null);useEffect(()=>{const fetchIntegrationSpec=async()=>{try{setLoading(true);const response=await fetch(`https://integrations.superblocks.com/openapi/${integrationId}.yaml`);if(!response.ok){throw new Error(`Failed to fetch integration spec: ${response.status}`)}const yamlText=await response.text();const infoStartIndex=yamlText.indexOf(`\ninfo:`);if(infoStartIndex===-1){const altIndex=yamlText.indexOf(`info:`);if(altIndex!==0){throw new Error(`Could not find info section in YAML`)}}let afterInfo,infoSection;if(infoStartIndex!==-1){afterInfo=yamlText.slice(infoStartIndex+6)}else{afterInfo=yamlText.slice(5)}const lines=afterInfo.split(`\n`);let infoEndIndex=afterInfo.length;for(let i=0;i\u003clines.length;i++){const line=lines[i];if(line.trim()\u0026\u0026!line.match(/^\\s/)){infoEndIndex=afterInfo.indexOf(line);break}}infoSection=afterInfo.slice(0,infoEndIndex).trim();let overviewText=null;const multilineMatchDash=infoSection.match(/description:\\s*\\|\\-\\s*\\n([\\s\\S]*?)(?=\\n\\s+(?:termsOfService|version|contact|license|x-public-description):|$)/);if(multilineMatchDash){overviewText=multilineMatchDash[1].replace(/^\\s+|\\s+$/g,``)}else{const multilineMatch=infoSection.match(/description:\\s*\\|\\s*\\n([\\s\\S]*?)(?=\\n\\s+(?:termsOfService|version|contact|license|x-public-description):|$)/);if(multilineMatch){overviewText=multilineMatch[1].replace(/^\\s+|\\s+$/g,``)}else{const simpleMatch=infoSection.match(/description:\\s*([\\s\\S]*?)(?=\\n\\s+(?:termsOfService|version|contact|license|x-public-description):|$)/);if(simpleMatch){overviewText=simpleMatch[1].trim()}}}if(!overviewText){throw new Error(`Could not extract description/overview from YAML spec`)}const parsedOverview=parseOverview(overviewText);if(!parsedOverview.setup){throw new Error(`Could not parse setup section from overview`)}const titleMatch=infoSection.match(/title:\\s*(.+)/);const specTitle=titleMatch?titleMatch[1].trim():title;const content=`${parsedOverview.setup}\n\n### Add integration\nOnce you have an access token, you're ready to set up your Superblocks integration.\n\n1. In the web app, navigate to the [Integrations](https://app.superblocks.com/integrations) page\n2. Click on the **${specTitle}** tile\n3. **Name** the integration \n4. Paste your credentials into the relevant fields\n5. Optionally, add more configurations to set credentials for [different environments](/development-lifecycle/build/profiles)\n6. Click **Create**`;setSetupContent(content);setError(null)}catch(err){setError(err.message);setSetupContent(null)}finally{setLoading(false)}};fetchIntegrationSpec()},[integrationId,title]);const parseOverview=overview=>{const startIndex=overview.indexOf(`## Get started`);if(startIndex===-1){const nextSectionMatch=overview.match(/\\n##\\s+/);if(!nextSectionMatch){return{description:overview.trim(),setup:null,usage:null}}else{const nextSectionIndex=nextSectionMatch.index;return{description:overview.slice(0,nextSectionIndex).trim(),setup:null,usage:overview.slice(nextSectionIndex).trim()}}}const lines=overview.split(`\n`);let getStartedLineIndex=-1;for(let i=0;i\u003clines.length;i++){if(lines[i].trim().startsWith(`## Get started`)){getStartedLineIndex=i;break}}if(getStartedLineIndex===-1){return{description:overview.slice(0,startIndex).trim(),setup:overview.slice(startIndex).replace(`## Get started`,`### Create an access token`).trim(),usage:null}}let nextSectionLineIndex=-1;for(let i=getStartedLineIndex+1;i\u003clines.length;i++){const trimmedLine=lines[i].trim();if(trimmedLine.startsWith(`##`)\u0026\u0026!trimmedLine.includes(`Get started`)){nextSectionLineIndex=i;break}}let endIndex;if(nextSectionLineIndex===-1){endIndex=overview.length}else{let currentPos=0;for(let i=0;i\u003cnextSectionLineIndex;i++){currentPos+=lines[i].length+1}endIndex=currentPos}return{description:overview.slice(0,startIndex).trim(),setup:overview.slice(startIndex,endIndex).replace(`## Get started`,`### Create an access token`).trim(),usage:overview.slice(endIndex).trim()}};if(loading){return _jsxs(`div`,{children:[_jsx(`div`,{style:{height:`20px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,marginBottom:`16px`,width:`40%`}}),_jsx(`div`,{style:{height:`16px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,marginBottom:`8px`}}),_jsx(`div`,{style:{height:`16px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,marginBottom:`8px`}}),_jsx(`div`,{style:{height:`16px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,marginBottom:`8px`}}),_jsx(`div`,{style:{height:`16px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,width:`60%`}})]})}if(error){return _jsxs(`div`,{style:{padding:`12px`,backgroundColor:`#fee`,border:`1px solid #fcc`,borderRadius:`4px`,color:`#c00`},children:[_jsx(`strong`,{children:`Error parsing setup:`}),` `,error]})}if(!setupContent){return _jsxs(`div`,{style:{padding:`12px`,backgroundColor:`#fee`,border:`1px solid #fcc`,borderRadius:`4px`,color:`#c00`},children:[_jsx(`strong`,{children:`Error:`}),` No setup content found for `,integrationId]})}const renderMarkdown=content=>{const lines=content.split(`\n`);const elements=[];let currentOrderedList=[];let currentUnorderedList=[];let lastOrderedItemIndex=-1;let lastElementWasHeader=false;for(let i=0;i\u003clines.length;i++){const originalLine=lines[i];const line=originalLine.trim();const indentLevel=originalLine.length-originalLine.trimStart().length;if(!line){if(currentOrderedList.length>0){elements.push(_jsx(`ol`,{children:currentOrderedList},`ol-${i}`));currentOrderedList=[];lastOrderedItemIndex=-1;lastElementWasHeader=false}if(currentUnorderedList.length>0){elements.push(_jsx(`ul`,{children:currentUnorderedList},`ul-${i}`));currentUnorderedList=[];lastElementWasHeader=false}let nextNonEmptyLine=null;for(let j=i+1;j\u003clines.length;j++){const nextLine=lines[j].trim();if(nextLine){nextNonEmptyLine=nextLine;break}}const isHeader=nextNonEmptyLine\u0026\u0026(nextNonEmptyLine.startsWith(`# `)||nextNonEmptyLine.startsWith(`## `)||nextNonEmptyLine.startsWith(`### `));const isLearnMore=nextNonEmptyLine\u0026\u0026nextNonEmptyLine.toLowerCase().includes(`learn more about`);const noteCheckText=nextNonEmptyLine.replace(/\\*\\*/g,``).toLowerCase();const isNote=nextNonEmptyLine\u0026\u0026(noteCheckText.startsWith(`note:`)||noteCheckText.includes(`note:`));if(isNote){elements.push(_jsx(`br`,{},`br-before-note-${i}`))}else if(!lastElementWasHeader\u0026\u0026!isHeader\u0026\u0026!isLearnMore){elements.push(_jsx(`br`,{},`br-${i}`))}continue}if(line.startsWith(`### `)){if(currentOrderedList.length>0){elements.push(_jsx(`ol`,{children:currentOrderedList},`ol-${i}`));currentOrderedList=[];lastOrderedItemIndex=-1}if(currentUnorderedList.length>0){elements.push(_jsx(`ul`,{children:currentUnorderedList},`ul-${i}`));currentUnorderedList=[]}elements.push(_jsx(`h3`,{children:line.substring(4)},`h3-${i}`));lastElementWasHeader=true;continue}if(line.startsWith(`## `)){if(currentOrderedList.length>0){elements.push(_jsx(`ol`,{children:currentOrderedList},`ol-${i}`));currentOrderedList=[];lastOrderedItemIndex=-1}if(currentUnorderedList.length>0){elements.push(_jsx(`ul`,{children:currentUnorderedList},`ul-${i}`));currentUnorderedList=[]}elements.push(_jsx(`h2`,{children:line.substring(3)},`h2-${i}`));lastElementWasHeader=true;continue}if(line.startsWith(`# `)){if(currentOrderedList.length>0){elements.push(_jsx(`ol`,{children:currentOrderedList},`ol-${i}`));currentOrderedList=[];lastOrderedItemIndex=-1}if(currentUnorderedList.length>0){elements.push(_jsx(`ul`,{children:currentUnorderedList},`ul-${i}`));currentUnorderedList=[]}elements.push(_jsx(`h1`,{children:line.substring(2)},`h1-${i}`));lastElementWasHeader=true;continue}const trimmedLineForOrdered=line.trimStart();if(trimmedLineForOrdered.match(/^\\d+\\.\\s/)){if(currentUnorderedList.length>0\u0026\u0026lastOrderedItemIndex>=0){const nestedList=_jsx(`ul`,{children:currentUnorderedList},`nested-ul-${i}`);const lastItem=currentOrderedList[lastOrderedItemIndex];currentOrderedList[lastOrderedItemIndex]=_jsxs(`li`,{children:[_jsx(`span`,{dangerouslySetInnerHTML:{__html:lastItem.props.dangerouslySetInnerHTML.__html}}),nestedList]},`li-nested-${lastOrderedItemIndex}`);currentUnorderedList=[]}const listItem=trimmedLineForOrdered.replace(/^\\d+\\.\\s/,``);const processedItem=processInlineMarkdown(listItem);currentOrderedList.push(_jsx(`li`,{dangerouslySetInnerHTML:{__html:processedItem}},`li-${i}`));lastOrderedItemIndex=currentOrderedList.length-1;lastElementWasHeader=false;continue}const trimmedLine=line.trimStart();if(trimmedLine.startsWith(`- `)||trimmedLine.startsWith(`* `)){if(indentLevel>0\u0026\u0026currentOrderedList.length>0){const listItem=trimmedLine.substring(2);const processedItem=processInlineMarkdown(listItem);currentUnorderedList.push(_jsx(`li`,{dangerouslySetInnerHTML:{__html:processedItem}},`li-${i}`));lastElementWasHeader=false;continue}const listItem=trimmedLine.substring(2);const processedItem=processInlineMarkdown(listItem);currentUnorderedList.push(_jsx(`li`,{dangerouslySetInnerHTML:{__html:processedItem}},`li-${i}`));lastElementWasHeader=false;continue}if(currentUnorderedList.length>0\u0026\u0026lastOrderedItemIndex>=0\u0026\u0026currentOrderedList.length>0){const nestedList=_jsx(`ul`,{children:currentUnorderedList},`nested-ul-${i}`);const lastItem=currentOrderedList[lastOrderedItemIndex];currentOrderedList[lastOrderedItemIndex]=_jsxs(`li`,{children:[_jsx(`span`,{dangerouslySetInnerHTML:{__html:lastItem.props.dangerouslySetInnerHTML.__html}}),nestedList]},`li-nested-${lastOrderedItemIndex}`);currentUnorderedList=[];lastOrderedItemIndex=-1}if(currentOrderedList.length>0){elements.push(_jsx(`ol`,{children:currentOrderedList},`ol-${i}`));currentOrderedList=[];lastOrderedItemIndex=-1}if(currentUnorderedList.length>0){elements.push(_jsx(`ul`,{children:currentUnorderedList},`ul-${i}`));currentUnorderedList=[]}const processedLine=processInlineMarkdown(line);elements.push(_jsx(`p`,{dangerouslySetInnerHTML:{__html:processedLine}},`p-${i}`));lastElementWasHeader=false}if(currentUnorderedList.length>0\u0026\u0026lastOrderedItemIndex>=0\u0026\u0026currentOrderedList.length>0){const nestedList=_jsx(`ul`,{children:currentUnorderedList},`nested-ul-final`);const lastItem=currentOrderedList[lastOrderedItemIndex];currentOrderedList[lastOrderedItemIndex]=_jsxs(`li`,{children:[_jsx(`span`,{dangerouslySetInnerHTML:{__html:lastItem.props.dangerouslySetInnerHTML.__html}}),nestedList]},`li-nested-final-${lastOrderedItemIndex}`);currentUnorderedList=[]}if(currentOrderedList.length>0){elements.push(_jsx(`ol`,{children:currentOrderedList},`ol-final`))}if(currentUnorderedList.length>0){elements.push(_jsx(`ul`,{children:currentUnorderedList},`ul-final`))}return elements};const processInlineMarkdown=text=>{return text.replace(/\\*\\*(.*?)\\*\\*/g,`\u003cstrong>$1\u003c/strong>`).replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g,`\u003ca href=\"$2\">$1\u003c/a>`).replace(/`([^`]+)`/g,`\u003ccode>$1\u003c/code>`)};return _jsx(`div`,{children:setupContent\u0026\u0026renderMarkdown(setupContent)})};const DynamicIntegrationOverview=({integrationId})=>{const[overview,setOverview]=useState(null);const[loading,setLoading]=useState(true);const[error,setError]=useState(null);useEffect(()=>{const fetchIntegrationSpec=async()=>{try{setLoading(true);const response=await fetch(`https://integrations.superblocks.com/openapi/${integrationId}.yaml`);if(!response.ok){throw new Error(`Failed to fetch integration spec: ${response.status}`)}const yamlText=await response.text();const infoStartIndex=yamlText.indexOf(`\ninfo:`);if(infoStartIndex===-1){const altIndex=yamlText.indexOf(`info:`);if(altIndex===0){const afterInfo=yamlText.slice(5);const lines=afterInfo.split(`\n`);let infoEndIndex=afterInfo.length;for(let i=0;i\u003clines.length;i++){const line=lines[i];if(line.trim()\u0026\u0026!line.match(/^\\s/)){infoEndIndex=afterInfo.indexOf(line);break}}var infoSection=afterInfo.slice(0,infoEndIndex).trim()}else{throw new Error(`Could not find info section in YAML`)}}else{const afterInfo=yamlText.slice(infoStartIndex+6);const lines=afterInfo.split(`\n`);let infoEndIndex=afterInfo.length;for(let i=0;i\u003clines.length;i++){const line=lines[i];if(line.trim()\u0026\u0026!line.match(/^\\s/)){infoEndIndex=afterInfo.indexOf(line);break}}var infoSection=afterInfo.slice(0,infoEndIndex).trim()}let overviewText=null;const multilineMatchDash=infoSection.match(/description:\\s*\\|\\-\\s*\\n([\\s\\S]*?)(?=\\n\\s+(?:termsOfService|version|contact|license|x-public-description):|$)/);if(multilineMatchDash){overviewText=multilineMatchDash[1].trim()}else{const multilineMatch=infoSection.match(/description:\\s*\\|\\s*\\n([\\s\\S]*?)(?=\\n\\s+(?:termsOfService|version|contact|license|x-public-description):|$)/);if(multilineMatch){overviewText=multilineMatch[1].trim()}else{const simpleMatch=infoSection.match(/description:\\s*([\\s\\S]*?)(?=\\n\\s+(?:termsOfService|version|contact|license|x-public-description):|$)/);if(simpleMatch){overviewText=simpleMatch[1].trim()}}}if(!overviewText){throw new Error(`Could not extract description/overview from YAML spec`)}const parsedOverview=parseOverview(overviewText);if(!parsedOverview.description){throw new Error(`Could not parse description from overview`)}setOverview({description:parsedOverview.description});setError(null)}catch(err){setError(err.message);setOverview(null)}finally{setLoading(false)}};fetchIntegrationSpec()},[integrationId]);const parseOverview=overview=>{const HEADER_OFFSET=3;const startIndex=overview.indexOf(`## Get started`);let endIndex=overview.slice(startIndex+HEADER_OFFSET).indexOf(`\n##`);if(startIndex===-1\u0026\u0026endIndex===-1){return{description:overview.trim(),setup:null,usage:null}}else if(startIndex===-1){endIndex=endIndex+startIndex+HEADER_OFFSET;return{description:overview.slice(0,endIndex).trim(),setup:null,usage:overview.slice(endIndex).trim()}}else if(endIndex===-1){return{description:overview.slice(0,startIndex).trim(),setup:overview.slice(startIndex).replace(`## Get started`,`### Create an access token`).trim(),usage:null}}else{endIndex=endIndex+startIndex+HEADER_OFFSET;return{description:overview.slice(0,startIndex).trim(),setup:overview.slice(startIndex,endIndex).replace(`## Get started`,`### Create an access token`).trim(),usage:overview.slice(endIndex).trim()}}};if(loading){return _jsxs(`div`,{children:[_jsx(`div`,{style:{height:`20px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,marginBottom:`16px`,width:`60%`}}),_jsx(`div`,{style:{height:`16px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,marginBottom:`8px`}}),_jsx(`div`,{style:{height:`16px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,marginBottom:`8px`,width:`80%`}}),_jsx(`div`,{style:{height:`16px`,backgroundColor:`#e1e5e9`,borderRadius:`4px`,width:`70%`}})]})}if(error){return _jsxs(`div`,{style:{padding:`12px`,backgroundColor:`#fee`,border:`1px solid #fcc`,borderRadius:`4px`,color:`#c00`},children:[_jsx(`strong`,{children:`Error parsing overview:`}),` `,error]})}if(!overview||!overview.description){return _jsxs(`div`,{style:{padding:`12px`,backgroundColor:`#fee`,border:`1px solid #fcc`,borderRadius:`4px`,color:`#c00`},children:[_jsx(`strong`,{children:`Error:`}),` No overview description found for `,integrationId]})}return _jsx(`div`,{children:_jsx(`p`,{children:overview.description})})};const Alert=({type,title,children})=>{const variant=[`info`,`success`,`warning`,`danger`,`note`].includes(type)?type:`note`;return _jsxs(`div`,{className:`alert alert--${variant}`,children:[_jsx(`div`,{className:`alert-icon`}),_jsxs(`div`,{className:`alert-content`,children:[title\u0026\u0026_jsx(`div`,{className:`alert-title`,children:title}),_jsx(`div`,{className:`alert-body`,children})]})]})};function _createMdxContent(props){const _components={p:`p`,..._provideComponents(),...props.components},{Heading,_MdxComponentBoundary}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_MdxComponentBoundary,{name:`DynamicIntegrationOverview`,children:_jsx(DynamicIntegrationOverview,{integrationId:`twilio`})}),`\n`,_jsx(Heading,{level:`2`,id:`setting-up-twilio`,children:`Setting up Twilio`}),`\n`,_jsx(_MdxComponentBoundary,{name:`DynamicIntegrationSetup`,children:_jsx(DynamicIntegrationSetup,{integrationId:`twilio`})}),`\n`,_jsx(_MdxComponentBoundary,{name:`Alert`,children:_jsx(Alert,{type:`success`,children:_jsx(_MdxComponentBoundary,{name:`IntegrationSuccess`,children:_jsx(IntegrationSuccess,{integrationName:`Twilio`})})})}),`\n`,_jsx(Heading,{level:`2`,id:`use-twilio-in-apis`,children:`Use Twilio in APIs`}),`\n`,_jsx(_components.p,{children:`You can use Twilio in your Superblocks applications through the API interface. This allows you to programmatically send messages, manage phone numbers, and interact with Twilio’s services. In addition to generic HTTP requests, Twilio supports the following actions.`}),`\n`,_jsx(Heading,{level:`3`,id:`supported-actions`,children:`Supported actions`}),`\n`,_jsx(_MdxComponentBoundary,{name:`DynamicIntegrationActions`,children:_jsx(DynamicIntegrationActions,{integrationId:`twilio`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{IntegrationSuccess,DynamicIntegrationActions,DynamicIntegrationSetup,DynamicIntegrationOverview,Alert,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":"Twilio","icon":"https://integrations.superblocks.com/img/twilio.png","description":null,"href":"/integrations/integrations-library/twilio"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[134,151,"DynamicIntegrationActions=()=>null;const DynamicIntegrationSetup=()=>null;const DynamicIntegrationOverview=()=>null;const Alert=()=>null;const IntegrationSucces"],[452,20509,""],[22196,22215,""],[22298,22299,"IntegrationSuccess,d"]]},"mdxExtracts":{"tableOfContents":[{"title":"Setting up Twilio","slug":"setting-up-twilio","depth":2,"children":[]},{"title":"Use Twilio in APIs","slug":"use-twilio-in-apis","depth":2,"children":[{"title":"Supported actions","slug":"supported-actions","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/superblocks/b90a1092589e1678/scripts/docs-dropdown.js","/_mintlify/custom/superblocks/2e1a90ed6751a043/scripts/hide-h4-toc.js","/_mintlify/custom/superblocks/a47ce67d4eef9e84/scripts/login-dropdown.js"],"subdomain":"superblocks","siteName":"Superblocks Docs","title":"Twilio - Superblocks Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T21:41:49.442Z","originalFileLocation":"integrations/integrations-library/twilio.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Superblocks 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/superblocks/-rmM-HaQu8p-i744/_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/superblocks/-rmM-HaQu8p-i744/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superblocks/-rmM-HaQu8p-i744/_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/superblocks/-rmM-HaQu8p-i744/_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/superblocks/-rmM-HaQu8p-i744/_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/superblocks/-rmM-HaQu8p-i744/_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/superblocks/-rmM-HaQu8p-i744/_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/superblocks/-rmM-HaQu8p-i744/_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/superblocks/-rmM-HaQu8p-i744/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Twilio - Superblocks Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Superblocks Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.superblocks.com/integrations/integrations-library/twilio\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://superblocks.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Twilio\u0026amp;theme=9214f68a0d6dbc2178c116e1\u0026amp;signature=633213ef91a17cc420e90b7b62f13d79f8f5f7e11eaceadbb81056445290cc91\">\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=\"Twilio - Superblocks Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://superblocks.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Twilio\u0026amp;theme=9214f68a0d6dbc2178c116e1\u0026amp;signature=633213ef91a17cc420e90b7b62f13d79f8f5f7e11eaceadbb81056445290cc91\">\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/superblocks/-rmM-HaQu8p-i744/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Superblocks Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0099FF\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"GRlSViNmYAh8zaaBQBQ77n_bBxqNzUsH3bvSka5rgII\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.superblocks.com/integrations/integrations-library/twilio\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrations/integrations-library/twilio.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.superblocks.com/#organization\",\"name\":\"Superblocks Docs\",\"url\":\"https://docs.superblocks.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/superblocks/ohww6-Z99ndA0n1k/logo/sb_logo_light.png?fit=max\u0026auto=format\u0026n=ohww6-Z99ndA0n1k\u0026q=85\u0026s=156967bb5e753292ee4e82a1b546f594\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.superblocks.com#website\",\"name\":\"Superblocks Docs\",\"url\":\"https://docs.superblocks.com\",\"publisher\":{\"@id\":\"https://docs.superblocks.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.superblocks.com/integrations/integrations-library/twilio#webpage\",\"url\":\"https://docs.superblocks.com/integrations/integrations-library/twilio\",\"name\":\"Twilio\",\"dateModified\":\"2026-10-20T21:41:49.442Z\",\"isPartOf\":{\"@id\":\"https://docs.superblocks.com#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.superblocks.com/integrations/integrations-library/twilio#article\",\"headline\":\"Twilio\",\"name\":\"Twilio\",\"url\":\"https://docs.superblocks.com/integrations/integrations-library/twilio\",\"mainEntityOfPage\":{\"@id\":\"https://docs.superblocks.com/integrations/integrations-library/twilio#webpage\"},\"dateModified\":\"2026-10-20T21:41:49.442Z\",\"publisher\":{\"@id\":\"https://docs.superblocks.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.superblocks.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Superblocks Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Superblocks Docs","nav":{"global":null,"tabs":[{"tab":"Builder guide","groups":[{"group":"Getting started","icon":"rocket","pages":[{"title":"Introduction to Superblocks","icon":"book-open","mode":"wide","href":"/getting-started/what-is-superblocks"}]},{"group":"Building with Clark AI","icon":"sparkles","pages":[{"title":"Building with Clark AI","sidebarTitle":"Overview","icon":"list","href":"/building-with-clark/index"},{"title":"Tagging integrations","icon":"plug","href":"/building-with-clark/tagging-integrations"},{"title":"Plan \u0026 Build modes","icon":"wand-magic-sparkles","href":"/building-with-clark/plan-and-build-modes"},{"title":"Adding context","icon":"bullseye-pointer","href":"/building-with-clark/adding-context"},{"title":"Checkpoints \u0026 publishing","icon":"clock-rotate-left","href":"/building-with-clark/checkpoints"},{"title":"Backend APIs","icon":"brackets-curly","href":"/building-with-clark/backend-apis"},{"title":"Access controls in apps","icon":"shield-halved","href":"/building-with-clark/rbac"},{"title":"Superblocks in Claude","icon":"https://mintlify.s3.us-west-1.amazonaws.com/superblocks/logo/claude-mono.svg","href":"/building-with-clark/superblocks-in-claude"},{"group":"Knowledge","icon":"graduation-cap","pages":[{"title":"Knowledge","sidebarTitle":"Overview","icon":"graduation-cap","href":"/building-with-clark/knowledge/index"},{"title":"App knowledge","icon":"browser","href":"/building-with-clark/knowledge/app-knowledge"},{"title":"User knowledge","icon":"user","href":"/building-with-clark/knowledge/user-knowledge"}]},{"group":"Import apps","icon":"file-import","pages":[{"title":"Overview","icon":"file-import","href":"/building-with-clark/import-app/index"},{"title":"Lovable import","icon":"https://mintlify.s3.us-west-1.amazonaws.com/superblocks/logo/lovable.svg","href":"/building-with-clark/import-app/lovable"},{"title":"Replit import","icon":"https://mintlify.s3.us-west-1.amazonaws.com/superblocks/logo/replit.svg","href":"/building-with-clark/import-app/replit"},{"title":"v0 import","icon":"https://mintlify.s3.us-west-1.amazonaws.com/superblocks/logo/v0.svg","href":"/building-with-clark/import-app/v0"},{"title":"Claude import","icon":"https://mintlify.s3.us-west-1.amazonaws.com/superblocks/logo/claude.svg","href":"/building-with-clark/import-app/claude"},{"title":"ChatGPT import","icon":"https://mintlify.s3.us-west-1.amazonaws.com/superblocks/logo/openai.svg","href":"/building-with-clark/import-app/chatgpt"},{"title":"Other app import","icon":"file-zip","href":"/building-with-clark/import-app/other"}]},{"title":"Developing apps in code","icon":"react","href":"/building-with-clark/developing-apps-in-code"},{"title":"Workflows","icon":"bolt","tag":"Coming soon","href":"/building-with-clark/workflows"}]},{"group":"Development lifecycle","icon":"refresh","pages":[{"group":"Build","icon":"hammer","pages":[{"title":"Using data tags","sidebarTitle":"Data tags","href":"/development-lifecycle/build/data-tags"},{"title":"Local development","href":"/development-lifecycle/build/local-dev"},{"title":"Rate limits and quotas","href":"/development-lifecycle/build/rate-limits-and-quotas"},{"title":"Using secrets","href":"/development-lifecycle/build/using-secrets"}]},{"group":"Version control","icon":"git","pages":[{"title":"Superblocks SDLC","href":"/development-lifecycle/version-control/superblocks-sdlc"},{"title":"Connect to Git","href":"/development-lifecycle/version-control/connect-to-git"}]}]},{"group":"Hosting","icon":"globe","pages":[{"title":"Overview","icon":"list","mode":"wide","href":"/hosting/overview"},{"group":"Embedded apps","icon":"code","pages":[{"title":"Embedded applications","sidebarTitle":"Overview","href":"/hosting/embedded-apps/overview"},{"title":"Embedded app quickstart","sidebarTitle":"Quickstart","href":"/hosting/embedded-apps/quickstart"},{"title":"Authenticating embedded users","sidebarTitle":"Authentication","href":"/hosting/embedded-apps/authentication"},{"title":"Interactive embedding","href":"/hosting/embedded-apps/interactivity"},{"group":"How-tos","pages":[{"title":"Login embed users with Auth0","href":"/hosting/embedded-apps/how-tos/use-auth-for-sso"}]}]},{"group":"Databricks apps","icon":"/logo/databricks.svg","expanded":false,"pages":[{"title":"Superblocks on Databricks Apps Overview","sidebarTitle":"Overview","href":"/hosting/databricks-apps/overview"},{"title":"Superblocks setup for Databricks runtime","sidebarTitle":"Set up environment","href":"/hosting/databricks-apps/setup"},{"title":"Authentication for Databricks Apps","sidebarTitle":"Authentication","href":"/hosting/databricks-apps/authentication"},{"title":"Deploying a Superblocks App to Databricks","sidebarTitle":"Deploy to Databricks","href":"/hosting/databricks-apps/deploy"}]}]}]},{"tab":"Integrations","groups":[{"group":"Integrations","icon":"plug","pages":[{"title":"Overview","href":"/integrations/overview"},{"title":"Integrations library","mode":"wide","href":"/integrations/integrations-library/index"},{"title":"Integration knowledge","href":"/integrations/knowledge"},{"title":"App AI","href":"/integrations/app-ai"}]},{"group":"Authentication \u0026 authorization","icon":"key","pages":[{"title":"Database connections","href":"/integrations/auth/database-connections/index"},{"title":"API authentication types","href":"/integrations/auth/authentication-types"},{"title":"Connect to AWS services with IAM roles","sidebarTitle":"AWS IAM","href":"/integrations/auth/aws-iam"},{"title":"OAuth 2.0 authentication / authorization","sidebarTitle":"OAuth 2.0","href":"/integrations/auth/oauth-20"},{"title":"Firebase authentication","sidebarTitle":"Firebase","href":"/integrations/auth/firebase"},{"title":"Credentials and session management","sidebarTitle":"Credentials \u0026 sessions","href":"/integrations/auth/credential-and-session-management"},{"group":"Guides","pages":[{"title":"Set up OAuth 2.0 On-Behalf-Of token exchange with Okta as your IdP","sidebarTitle":"On-Behalf-Of token exchange with Okta","icon":"https://mintlify.s3.us-west-1.amazonaws.com/superblocks/logo/okta-mono.svg","href":"/integrations/auth/guides/on-behalf-of-token-exchange-backend-api"},{"title":"Set up Snowflake External OAuth with Okta as your IdP","sidebarTitle":"Snowflake External OAuth with Okta","icon":"snowflake","href":"/integrations/auth/guides/snowflake-external-oauth-with-okta"},{"title":"Set up OAuth 2.0 Token Exchange for Salesforce","sidebarTitle":"Salesforce Token Exchange","icon":"salesforce","href":"/integrations/auth/guides/salesforce-token-exchange"},{"title":"Connect to Microsoft 365 with the Microsoft Graph API","sidebarTitle":"Microsoft 365 (Outlook, SharePoint, Teams)","icon":"microsoft","href":"/integrations/auth/guides/microsoft-365-graph-api"},{"title":"Azure managed identity authentication to SQL Server","sidebarTitle":"Azure MSI for SQL Server","icon":"microsoft","href":"/integrations/auth/guides/azure-msi-sql-server"},{"title":"Microsoft Fabric SQL Database with managed identity","sidebarTitle":"Microsoft Fabric SQL Database","icon":"microsoft","href":"/integrations/auth/guides/microsoft-fabric-sql-database"},{"title":"Authenticate with Google OAuth 2.0","sidebarTitle":"Google OAuth 2.0 for REST","icon":"google","href":"/integrations/auth/guides/guide-authenticating-with-google-oauth-2.0"},{"title":"Configure IP allowlist for databases","icon":"shield-check","href":"/integrations/auth/guides/configure-ip-allowlist-for-databases"}]}]},{"group":"Troubleshooting","icon":"wrench","pages":[{"title":"Troubleshooting database integrations","href":"/integrations/troubleshooting/troubleshooting-databases"}]}]},{"tab":"Admin guide","groups":[{"group":"Org administration","icon":"users","pages":[{"title":"Organization administration overview","sidebarTitle":"Overview","href":"/admin/org-administration/overview"},{"group":"Members","pages":[{"title":"About organization members","href":"/admin/org-administration/members"},{"title":"Manage organization members","sidebarTitle":"Invite users to join","href":"/admin/org-administration/members/invite-users"},{"sidebarTitle":"Remove a member","title":"Removing a member from your organization","href":"/admin/org-administration/members/remove-user"},{"title":"Permanently delete a user from Superblocks","sidebarTitle":"Permanently delete user","href":"/admin/org-administration/members/delete-user"}]},{"group":"Groups","pages":[{"title":"About user groups","href":"/admin/org-administration/groups"},{"title":"Managing user groups","sidebarTitle":"Managing groups","href":"/admin/org-administration/groups/managing-groups"},{"title":"Managing group permissions","href":"/admin/org-administration/groups/managing-group-permissions"}]},{"title":"Organization knowledge","href":"/admin/org-administration/knowledge"},{"title":"Superblocks RBAC","href":"/admin/org-administration/rbac"},{"group":"Organization roles","pages":[{"title":"About organization roles","href":"/admin/org-administration/org-roles"},{"title":"Using organization roles","href":"/admin/org-administration/org-roles/using-org-roles"},{"title":"About custom organization roles","sidebarTitle":"Custom organization roles","href":"/admin/org-administration/org-roles/custom-roles"},{"title":"Organization role permission reference","sidebarTitle":"Permissions reference","href":"/admin/org-administration/org-roles/permissions"}]},{"group":"Resource roles","pages":[{"title":"About resource roles","href":"/admin/org-administration/resource-roles"},{"title":"Manage access to resources","href":"/admin/org-administration/resource-roles/manage-access"},{"title":"About custom resource roles","sidebarTitle":"Custom resource roles","href":"/admin/org-administration/resource-roles/custom-roles"},{"title":"Resource base permissions","href":"/admin/org-administration/resource-roles/base-permissions"},{"title":"Manage creator roles","sidebarTitle":"Manage role assigned to resource creator","href":"/admin/org-administration/resource-roles/creator-roles"}]},{"group":"Authentication \u0026 security","pages":[{"group":"Single Sign-On (SSO)","pages":[{"title":"Single Sign-On (SSO) overview","sidebarTitle":"SSO overview","href":"/admin/org-administration/auth/single-sign-on/index"},{"title":"Okta SSO setup","sidebarTitle":"Okta","href":"/admin/org-administration/auth/single-sign-on/okta"},{"title":"Entra ID SSO setup","sidebarTitle":"Entra ID (Azure AD)","href":"/admin/org-administration/auth/single-sign-on/azure-ad"},{"title":"Google SSO setup","sidebarTitle":"Google","href":"/admin/org-administration/auth/single-sign-on/google"}]},{"group":"SCIM","pages":[{"title":"Manage users and groups with SCIM","sidebarTitle":"SCIM overview","href":"/admin/org-administration/auth/scim/index"},{"title":"Okta SCIM setup","sidebarTitle":"Okta","href":"/admin/org-administration/auth/scim/okta"},{"title":"Entra ID SCIM setup","sidebarTitle":"Entra ID (Azure AD)","href":"/admin/org-administration/auth/scim/azure-ad"}]},{"title":"Access tokens","href":"/admin/org-administration/auth/access-tokens"}]}]},{"group":"Governance","icon":"grid","pages":[{"title":"Admin MCP","href":"/admin/mcp-server"},{"title":"Audit logs","href":"/admin/audit-logs"},{"title":"Clark and data access","href":"/building-with-clark/data-access"},{"title":"Manage environments \u0026 data tags","sidebarTitle":"Environments \u0026 data tags","href":"/admin/environments"},{"group":"Secrets management","pages":[{"title":"Secrets management","sidebarTitle":"Overview","href":"/admin/secrets-management/overview"},{"title":"AWS Secrets Manager","icon":"https://integrations.superblocks.com/img/aws_secrets_manager.psd.png","href":"/admin/secrets-management/aws-secrets-manager"},{"title":"Google Secret Manager","icon":"https://integrations.superblocks.com/img/secret_manager_1.png","href":"/admin/secrets-management/google-secrets-manager"},{"title":"HashiCorp Vault","icon":"https://integrations.superblocks.com/img/hashicorpvault.png","href":"/admin/secrets-management/hashicorp-vault"}]},{"group":"Code Security","pages":[{"title":"Code Security","sidebarTitle":"Overview","href":"/admin/code-security/index"},{"title":"How findings work","sidebarTitle":"How findings work","href":"/admin/code-security/how-findings-work"},{"title":"Static analysis","sidebarTitle":"Static analysis","href":"/admin/code-security/static-analysis"},{"title":"Security Agent","sidebarTitle":"Security Agent","href":"/admin/code-security/security-agent"},{"title":"CVE detection","sidebarTitle":"CVE detection","href":"/admin/code-security/supply-chain/cve-detection"},{"group":"Packages","pages":[{"title":"CVE notifications","sidebarTitle":"CVE notifications","href":"/admin/code-security/supply-chain/cve-notifications"},{"title":"CVE exceptions","sidebarTitle":"CVE exceptions","href":"/admin/code-security/supply-chain/cve-exceptions"},{"title":"SBOM","sidebarTitle":"SBOM","href":"/admin/code-security/supply-chain/sbom"},{"title":"Private registries","sidebarTitle":"Private registries","href":"/admin/code-security/supply-chain/private-registries"}]}]}]},{"group":"Billing","icon":"credit-card","pages":[{"title":"Billing overview","sidebarTitle":"Billing overview","href":"/admin/billing-overview"},{"title":"Plan \u0026 Usage","sidebarTitle":"Plan \u0026 Usage","href":"/admin/plan-and-usage"},{"title":"Spend management","href":"/admin/spend-management"},{"title":"Self-serve plans","href":"/admin/self-serve-plan"}]},{"group":"Superblocks on AWS","icon":"aws","pages":[{"title":"Superblocks on AWS","sidebarTitle":"Overview","href":"/admin/superblocks-on-aws/aws"},{"group":"Database","pages":[{"title":"Superblocks Database","sidebarTitle":"Overview","href":"/admin/superblocks-on-aws/database"},{"title":"Set up Superblocks Database","sidebarTitle":"Setup","href":"/admin/superblocks-on-aws/database-setup"},{"title":"Superblocks Database Reference","sidebarTitle":"Reference","mode":"wide","href":"/admin/superblocks-on-aws/database-reference"},{"title":"Superblocks Database security model","sidebarTitle":"Security model","mode":"wide","href":"/admin/superblocks-on-aws/database-security"}]},{"title":"Inference on Amazon Bedrock","sidebarTitle":"Inference","href":"/admin/superblocks-on-aws/inference"},{"title":"Superblocks File Store","sidebarTitle":"File Store","href":"/admin/superblocks-on-aws/file-store"},{"title":"AWS Marketplace","href":"/admin/superblocks-on-aws/aws-marketplace"}]}]},{"tab":"Enterprise deployment \u0026 security","groups":[{"group":"Enterprise deployment","icon":"server","pages":[{"title":"Enterprise deployment","sidebarTitle":"Overview","href":"/enterprise/deployment-overview"},{"title":"Superblocks Cloud","sidebarTitle":"Cloud","href":"/enterprise/cloud-architecture"},{"group":"Hybrid","pages":[{"title":"Superblocks Hybrid","sidebarTitle":"Overview","href":"/enterprise/hybrid-architecture/overview"},{"group":"Plan","pages":[{"title":"Plan your data planes","sidebarTitle":"Data planes, tags \u0026 environments","href":"/enterprise/hybrid-architecture/plan/index"},{"title":"Reference architectures","sidebarTitle":"Reference architectures","href":"/enterprise/hybrid-architecture/plan/architectures"},{"title":"Data planes and Superblocks Database","sidebarTitle":"Superblocks Database","href":"/enterprise/hybrid-architecture/plan/superblocks-database"}]},{"group":"Deploy data plane","pages":[{"title":"Deployment overview","href":"/enterprise/hybrid-architecture/deployment/index"},{"title":"AWS ECS Fargate","href":"/enterprise/hybrid-architecture/deployment/aws_ecs_fargate"},{"title":"Google Cloud Run","href":"/enterprise/hybrid-architecture/deployment/google_cloud_run"},{"title":"Kubernetes","href":"/enterprise/hybrid-architecture/deployment/kubernetes"},{"title":"Azure Container Apps","href":"/enterprise/hybrid-architecture/deployment/azure_container_apps"},{"title":"Virtual machine","href":"/enterprise/hybrid-architecture/deployment/virtual_machine"},{"title":"Local Docker","href":"/enterprise/hybrid-architecture/deployment/local_docker"},{"title":"Set agent tags","sidebarTitle":"Set agent tags","href":"/enterprise/hybrid-architecture/deployment/multiple_environments"}]},{"group":"Manage","pages":[{"title":"Monitoring the data plane","sidebarTitle":"Monitor","href":"/enterprise/hybrid-architecture/manage/monitoring"},{"title":"Scaling and high availability","href":"/enterprise/hybrid-architecture/manage/scaling_and_high_availability"},{"title":"Size and time limits","href":"/enterprise/hybrid-architecture/manage/size_and_time_limits"},{"title":"Database connection pooling","href":"/enterprise/hybrid-architecture/manage/database_connection_pooling"},{"title":"Local Redis","href":"/enterprise/hybrid-architecture/manage/local_redis"},{"title":"Troubleshooting the data plane","sidebarTitle":"Troubleshooting","href":"/enterprise/hybrid-architecture/manage/troubleshooting"},{"title":"Upgrading the data plane","sidebarTitle":"Upgrade","href":"/enterprise/hybrid-architecture/manage/upgrade"}]},{"group":"Extend","pages":[{"title":"Storing environment variables","href":"/enterprise/hybrid-architecture/extend/storing-environment-variables"},{"title":"Additional configuration","sidebarTitle":"Additional configuration","href":"/enterprise/hybrid-architecture/extend/additional-configuration"}]}]},{"group":"Cloud-Prem","pages":[{"title":"Superblocks AWS Cloud-Prem","sidebarTitle":"AWS","icon":"aws","href":"/enterprise/cloud-prem/aws"},{"title":"Cloud-Prem deployment guide","sidebarTitle":"Deployment guide","href":"/enterprise/cloud-prem/deployment-guide"},{"group":"Configure","pages":[{"title":"Optional configurations","sidebarTitle":"Overview","href":"/enterprise/cloud-prem/configure/index"},{"title":"Observability destinations","href":"/enterprise/cloud-prem/configure/observability-destinations"},{"title":"Custom resource tags","href":"/enterprise/cloud-prem/configure/resource-tags"},{"title":"Custom WAF rule groups","href":"/enterprise/cloud-prem/configure/waf-rule-groups"},{"title":"AWS Network Firewall","href":"/enterprise/cloud-prem/configure/network-firewall"}]}]},{"title":"Instance URLs","href":"/enterprise/instance-urls"}]},{"group":"Security","icon":"shield-check","pages":[{"title":"Security guide","href":"/enterprise/security/overview"},{"title":"SOC 2 Type 2","href":"/enterprise/security/soc2-type2"},{"title":"HIPAA","href":"/enterprise/security/hipaa"}]},{"group":"Support","icon":"message","pages":[{"title":"Contact us","href":"/enterprise/support/help"}]}]},{"tab":"Release notes","pages":[{"title":"Release notes","icon":"newspaper","href":"/release-notes"}]}]},"basePath":"","title":"Twilio - Superblocks Docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}