CINXE.COM

Function Execution | Twilio

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Function Execution | Twilio</title><meta name="description" content="Learn the process of how your Twilio Function code is executed, details about the parameters it receives, and how to construct a response."/><link rel="canonical" href="https://www.twilio.com/docs/serverless/functions-assets/functions/invocation"/><meta name="next-head-count" content="5"/><link rel="preconnect" href="https://assets.twilio.com"/><script async="" defer="" src="https://consent.trustarc.com/notice?domain=twilio.com&amp;c=teconsent&amp;gtm=1&amp;js=nj&amp;noticeType=bb"></script><meta name="x-twilio-docs-source" content="primary"/><link rel="preload" href="/_next/static/css/12418e876151f57e.css?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" as="style"/><link rel="stylesheet" href="/_next/static/css/12418e876151f57e.css?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui"></script><script src="/_next/static/chunks/webpack-d016809eecc59b28.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/chunks/framework-4e9f6efc6446e694.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/chunks/main-b4d4f90b1cc4bdde.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/chunks/pages/_app-6b981dd856620b2d.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/chunks/7835-a7fb10a2256feaa9.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/chunks/5755-cd1d6e20366970fc.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/chunks/9743-1283f268b3f87fce.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/chunks/pages/docs/%5B...path%5D-a754f9627e597019.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/17cMqf3dMWO0te7bKczIy/_buildManifest.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script><script src="/_next/static/17cMqf3dMWO0te7bKczIy/_ssgManifest.js?dpl=dpl_8U5NexGFXdQ6oEQqWQFKBtdip8Ui" defer=""></script></head><body><div id="__next"><style data-emotion="css-global lbobjb">html{font-size:100%;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;}html:lang(ja) .paste-theme-provider,html:lang(ja-JP) .paste-theme-provider{font-family:'Inter var experimental','Inter var',Hiragino Sans,'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,Osaka,'MS PGothic',sans-serif;}html:lang(zh-CN) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft YaHei New',微软雅黑,'Microsoft Yahei','Microsoft JhengHei',宋体,SimSun,sans-serif;}html:lang(zh-TW) .paste-theme-provider,html:lang(zh-HK) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}html:lang(ko) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}body{background-color:rgb(255, 255, 255);margin:0;}*,*::after,*::before{box-sizing:border-box;}@media (prefers-reduced-motion: reduce){*{-webkit-animation-duration:0!important;animation-duration:0!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;transition-duration:0!important;scroll-behavior:auto!important;}}:root{--reach-dialog:1;}</style><style data-emotion="css-global 1uje5tv">@font-face{font-family:'Inter var';font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:'Regular';src:url("https://assets.twilio.com/public_assets/paste-fonts/1.5.2/Inter-roman.var.woff2?v=3.19") format("woff2");}@font-face{font-family:'Inter var';font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:'Italic';src:url("https://assets.twilio.com/public_assets/paste-fonts/1.5.2/Inter-italic.var.woff2?v=3.19") format("woff2");}@font-face{font-family:'Inter var experimental';font-weight:100 900;font-display:swap;font-style:oblique 0deg 8deg;src:url("https://assets.twilio.com/public_assets/paste-fonts/1.5.2/Inter.var.woff2?v=3.19") format("woff2");}@font-face{font-family:'TwilioSansMono';font-style:normal;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Regular.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Regular.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:italic;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-RegularItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-RegularItl.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:normal;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Bold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Bold.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:italic;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-BoldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-BoldItl.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:normal;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Medium.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Medium.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:italic;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-MediumItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-MediumItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Light.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Light.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-LightItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-LightItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Regular.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Regular.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-RegularItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-RegularItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Medium.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Medium.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-MediumItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-MediumItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Semibold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Semibold.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-SemiboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-SemiboldItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Bold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Bold.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-BoldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-BoldItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Extrabold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Extrabold.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-ExtraboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-ExtraboldItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Light.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Light.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-LightItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-LightItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Regular.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Regular.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-RegularItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-RegularItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Medium.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Medium.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-MediumItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-MediumItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Semibold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Semibold.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-SemiboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-SemiboldItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Bold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Bold.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-BoldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-BoldItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Extrabold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Extrabold.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-ExtraboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-ExtraboldItl.woff') format('woff');}</style><style data-emotion="css 1pzojz9">.css-1pzojz9{color:rgb(18, 28, 45);-webkit-print-color-scheme:light;color-scheme:light;font-size:0.875rem;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;line-height:1.25rem;font-weight:400;font-variant-numeric:tabular-nums;}</style><div class="paste-theme-provider css-1pzojz9"><style data-emotion="css-global lbobjb">html{font-size:100%;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;}html:lang(ja) .paste-theme-provider,html:lang(ja-JP) .paste-theme-provider{font-family:'Inter var experimental','Inter var',Hiragino Sans,'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,Osaka,'MS PGothic',sans-serif;}html:lang(zh-CN) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft YaHei New',微软雅黑,'Microsoft Yahei','Microsoft JhengHei',宋体,SimSun,sans-serif;}html:lang(zh-TW) .paste-theme-provider,html:lang(zh-HK) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}html:lang(ko) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}body{background-color:rgb(255, 255, 255);margin:0;}*,*::after,*::before{box-sizing:border-box;}@media (prefers-reduced-motion: reduce){*{-webkit-animation-duration:0!important;animation-duration:0!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;transition-duration:0!important;scroll-behavior:auto!important;}}:root{--reach-dialog:1;}</style><div class="css-1pzojz9"><style data-emotion="css-global 10ozouv">*{font-variant-ligatures:none;font-feature-settings:"liga" 0;}.DocSearch-Button{background-color:rgb(255, 255, 255);border-radius:4px;box-shadow:0 0 0 1px #8891aa;color:rgb(96, 107, 133);padding-left:0.75rem;padding-right:0.75rem;margin:0;width:100%;}.DocSearch-Button:hover{box-shadow:0 0 0 1px #006dfa;}.DocSearch-Button:active,.DocSearch-Button:focus{box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;}.DocSearch-Button .DocSearch-Search-Icon{color:rgb(96, 107, 133);width:1rem;height:1rem;}.DocSearch-Button-Placeholder{font-size:0.875rem;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:500;font-style:italic;padding-left:0.75rem;padding-right:0.75rem;}.DocSearch-Button-Key{top:0;padding-bottom:0;}.DocSearch-Container{color:rgb(18, 28, 45);-webkit-print-color-scheme:light;color-scheme:light;font-size:0.875rem;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;line-height:1.25rem;font-weight:400;font-variant-numeric:tabular-nums;}.DocSearch-Dropdown a{color:rgb(2, 99, 224);-webkit-text-decoration:underline;text-decoration:underline;}.DocSearch-Dropdown a:hover{-webkit-text-decoration:none;text-decoration:none;}.DocSearch-SearchBar{padding-bottom:0.25rem;}.DocSearch-Search-Icon{color:rgb(96, 107, 133);}.DocSearch-Input{padding-left:1rem;}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{width:1rem;height:1rem;}.DocSearch-Hits mark{color:rgb(2, 99, 224);}.DocSearch-Hit{padding-bottom:0.5rem;}.DocSearch-Hit a{border-color:rgb(225, 227, 234);border-style:solid;border-width:2px;-webkit-text-decoration:none;text-decoration:none;}.DocSearch-Hit[aria-selected=true] a{border-color:rgb(3, 11, 93);}.DocSearch-Hit-title{font-size:0.875rem;}.DocSearch-Hit-path{font-size:0.75rem;}.DocSearch-Hit-source{color:rgb(18, 28, 45);font-size:0.875rem;font-weight:500;}.DocSearch-Hit-icon{display:none;}.DocSearch-Prefill{color:rgb(2, 99, 224);-webkit-text-decoration:underline;text-decoration:underline;}.DocSearch-Prefill:hover{-webkit-text-decoration:none;text-decoration:none;}.DocSearch-Commands-Key{padding-bottom:0;}:root{--docsearch-primary-color:rgb(3, 11, 93);--docsearch-text-color:rgb(18, 28, 45);--docsearch-spacing:1rem;--docsearch-icon-stroke-width:2px;--docsearch-highlight-color:rgb(3, 11, 93);--docsearch-muted-color:rgb(96, 107, 133);--docsearch-container-background:rgba(96, 107, 133, 0.5);--docsearch-logo-color:rgb(96, 107, 133);--docsearch-modal-width:44.5rem;--docsearch-modal-height:600px;--docsearch-modal-background:rgb(255, 255, 255);--docsearch-modal-shadow:0 2px 8px 0 rgba(18, 28, 45, 0.1);--docsearch-searchbox-height:46px;--docsearch-searchbox-background:rgb(18, 28, 45);--docsearch-searchbox-focus-background:rgb(255, 255, 255);--docsearch-searchbox-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;--docsearch-hit-height:56px;--docsearch-hit-color:rgb(18, 28, 45);--docsearch-hit-active-color:rgb(255, 255, 255);--docsearch-hit-background:rgb(255, 255, 255);--docsearch-hit-shadow:none;--docsearch-key-gradient:rgb(244, 244, 246);--docsearch-key-shadow:none;--docsearch-footer-height:44px;--docsearch-footer-background:rgb(255, 255, 255);--docsearch-footer-shadow:none;}html{scroll-behavior:smooth;scroll-padding-top:100px;}@media (max-width: 1385px){html{scroll-padding-top:156px;}}.grecaptcha-badge{visibility:hidden;}</style><style data-emotion="css ikpa90">.css-ikpa90{box-sizing:border-box;opacity:0;transition-delay:50ms;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;}@media screen and (min-width: 768px){.css-ikpa90{opacity:1;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ikpa90"><style data-emotion="css 1rkak9m">.css-1rkak9m{box-sizing:border-box;background-color:rgb(255, 255, 255);border-radius:4px;box-shadow:0 2px 8px 0 rgba(18, 28, 45, 0.1);left:10px;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.5rem;padding-bottom:0.5rem;position:fixed;top:10px;-webkit-transform:translateY(-150%);-moz-transform:translateY(-150%);-ms-transform:translateY(-150%);transform:translateY(-150%);-webkit-transition:-webkit-transform 0.1s;transition:transform 0.1s;z-index:90;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-column-gap:1.25rem;column-gap:1.25rem;}.css-1rkak9m:focus-within{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);}</style><div data-paste-element="SIDEBAR_SKIPLINKS" data-paste-core-version="20.7.0" class="css-1rkak9m"><style data-emotion="css lpeit6">.css-lpeit6{box-sizing:border-box;color:rgb(2, 99, 224);font-size:inherit;font-weight:inherit;line-height:inherit;outline:none;-webkit-text-decoration:underline;text-decoration:underline;}.css-lpeit6:active,.css-lpeit6[data-active=true]{color:rgb(6, 3, 58);-webkit-text-decoration:none;text-decoration:none;}.css-lpeit6:focus{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;color:rgb(2, 99, 224);-webkit-text-decoration:underline;text-decoration:underline;border-radius:4px;}.css-lpeit6:hover{color:rgb(3, 11, 93);-webkit-text-decoration:none;text-decoration:none;}</style><a data-paste-element="SIDEBAR_SKIPLINKS_LINK" data-paste-core-version="20.7.0" href="#twilio-docs-content-area" class="css-lpeit6">Skip to content</a><a data-paste-element="SIDEBAR_SKIPLINKS_LINK" data-paste-core-version="20.7.0" href="#twilio-docs-sidebar-nav" class="css-lpeit6">Skip to navigation</a><a data-paste-element="SIDEBAR_SKIPLINKS_LINK" data-paste-core-version="20.7.0" href="#twilio-docs-topbar" class="css-lpeit6">Skip to topbar</a></div><style data-emotion="css 1ngeyxk">.css-1ngeyxk{box-sizing:border-box;width:100%;overflow:visible;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border-right-style:solid;border-right-width:1px;border-right-color:rgb(57, 71, 98);background-color:rgb(18, 28, 45);z-index:50;position:fixed;top:0;left:0;bottom:0;}@media screen and (min-width: 768px){.css-1ngeyxk{width:15rem;}}</style><aside data-paste-element="SIDEBAR" data-paste-core-version="20.7.0" style="opacity:1;width:15rem;transform:translateX(0%)" id=":R2lasm:" class="css-1ngeyxk"><style data-emotion="css 144b354">.css-144b354{box-sizing:border-box;padding-left:1.25rem;padding-right:1.25rem;min-height:4.75rem;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(57, 71, 98);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-column-gap:1rem;column-gap:1rem;overflow:hidden;}</style><div data-paste-element="SIDEBAR_HEADER" data-paste-core-version="20.7.0" class="css-144b354"><style data-emotion="css 16k9fbc">.css-16k9fbc{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:4px;cursor:pointer;color:rgb(255, 255, 255);background-color:rgb(18, 28, 45);box-shadow:0 0 0 1px #394762;padding:0.5rem;}.css-16k9fbc:hover{-webkit-text-decoration:none;text-decoration:none;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);box-shadow:0 0 0 1px #f4f4f6;}.css-16k9fbc:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #394762,0 0 0 3px #121c2d,0 0 0 4px #ffffff,0 0 0 6px rgba(255, 255, 255, 0.2);}.css-16k9fbc:active,.css-16k9fbc[data-active=true]{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #ffffff;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);}</style><a data-paste-element="SIDEBAR_HEADER_ICON_BUTTON" data-paste-core-version="20.7.0" href="/docs" type="button" aria-busy="false" class="css-16k9fbc"><style data-emotion="css 1lgr57j">.css-1lgr57j{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:inherit;text-decoration:inherit;opacity:1;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-column-gap:0.25rem;column-gap:0.25rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;}</style><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><style data-emotion="css pe4vrq">.css-pe4vrq{box-sizing:border-box;line-height:0;display:block;color:currentColor;width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-:R9j6mlasm:"><title id="LogoTwilioIcon-:R9j6mlasm:">Go to the Twilio Docs home page</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><style data-emotion="css bt2jq2">.css-bt2jq2{box-sizing:border-box;opacity:1;font-size:0.875rem;font-weight:600;line-height:1.25rem;letter-spacing:-.02em;color:rgb(255, 255, 255);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:0;}</style><div data-paste-element="SIDEBAR_HEADER_LABEL" data-paste-core-version="20.7.0" class="css-bt2jq2">Twilio Docs</div></div><style data-emotion="css 1r1miiz">.css-1r1miiz{box-sizing:border-box;max-height:100%;overflow:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><div data-paste-element="SIDEBAR_BODY" data-paste-core-version="20.7.0" class="css-1r1miiz"><style data-emotion="css 1j8kdpc">.css-1j8kdpc{box-sizing:border-box;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;max-height:100%;overflow-y:auto;overflow-x:hidden;padding-top:1rem;padding-bottom:1rem;padding-left:1.25rem;padding-right:1.25rem;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><style data-emotion="css 1jrfwwl">.css-1jrfwwl{overflow-scrolling:touch;background:linear-gradient(rgb(18, 28, 45) 33%, rgba(20,28,44, 0)),linear-gradient(rgba(20,28,44, 0), rgb(18, 28, 45) 66%) 0 100%,radial-gradient(farthest-side at 50% 100%, rgba(57, 71, 98, 0.5), rgba(0,0,0,0)) 0 100%;background-repeat:no-repeat;-webkit-background-size:100% 15px,100% 15px,100% 5px,100% 5px;background-size:100% 15px,100% 15px,100% 5px,100% 5px;background-attachment:local,local,scroll,scroll;box-sizing:border-box;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;max-height:100%;overflow-y:auto;overflow-x:hidden;padding-top:1rem;padding-bottom:1rem;padding-left:1.25rem;padding-right:1.25rem;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}.css-1jrfwwl::-webkit-scrollbar{width:6px;}.css-1jrfwwl::-webkit-scrollbar-track{margin-top:8px;background:rgb(18, 28, 45);}.css-1jrfwwl::-webkit-scrollbar-thumb{background:rgb(57, 71, 98);border-radius:10px;}.css-1jrfwwl::-webkit-scrollbar-thumb:hover{background:rgb(57, 71, 98);}</style><nav data-paste-element="SIDEBAR_NAVIGATION" data-paste-core-version="20.7.0" aria-label="main" id="twilio-docs-sidebar-nav" class="css-1jrfwwl"><style data-emotion="css 4zrz0j">.css-4zrz0j{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.875rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.5rem;column-gap:0.5rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;position:relative;-webkit-text-decoration:none;text-decoration:none;background:none;border:none;overflow:hidden;padding-left:1.5rem;padding-right:0.5rem;margin-bottom:0.5rem;width:100%;}.css-4zrz0j:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}.css-4zrz0j:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets" class="css-4zrz0j"><style data-emotion="css qxhhlx">.css-qxhhlx{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-column-gap:0.25rem;column-gap:0.25rem;-webkit-transition:all 120ms ease;transition:all 120ms ease;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;float:none;opacity:1;white-space:normal;}</style><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Functions and Assets</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless" class="css-4zrz0j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Return to Serverless overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions" class="css-4zrz0j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Overview</span></a><style data-emotion="css 17onuso">.css-17onuso{box-sizing:border-box;display:block;margin-bottom:0.5rem;}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="20.7.0" class="css-17onuso"><style data-emotion="css 1icrb9o">.css-1icrb9o{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-column-gap:0.5rem;column-gap:0.5rem;}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="20.7.0" class="css-1icrb9o"><style data-emotion="css ecye55">.css-ecye55{box-sizing:border-box;font-style:normal;font-weight:600;font-size:0.875rem;line-height:1.25rem;color:rgb(255, 255, 255);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.25rem;column-gap:0.25rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;position:relative;-webkit-text-decoration:none;text-decoration:none;}.css-ecye55:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="20.7.0" type="button" aria-expanded="true" aria-controls=":Rqlamlasm:" class="css-ecye55"><style data-emotion="css 127bfmf">.css-127bfmf{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:rgb(136, 145, 170);height:1.25rem;width:1.25rem;-webkit-transition:-webkit-transform 150ms ease;transition:transform 150ms ease;-webkit-transform:translateX(0) rotate(90deg);-moz-transform:translateX(0) rotate(90deg);-ms-transform:translateX(0) rotate(90deg);transform:translateX(0) rotate(90deg);}</style><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="20.7.0" class="css-127bfmf"><style data-emotion="css pft8gl">.css-pft8gl{box-sizing:border-box;line-height:0;display:block;color:inherit;width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-:Rj9kqlamlasm:"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><style data-emotion="css 1m2bqrv">.css-1m2bqrv{box-sizing:border-box;display:block;margin-left:0.25rem;-webkit-transition:all 120ms ease;transition:all 120ms ease;float:none;opacity:1;white-space:normal;}</style><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m2bqrv">Technical concepts</span></div></div><style data-emotion="css 1nm6rmy">.css-1nm6rmy{box-sizing:border-box;padding-left:1.5rem;color:rgb(202, 205, 216);margin-top:0.25rem;}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="20.7.0" id=":Rqlamlasm:" class="css-1nm6rmy"><style data-emotion="css lafmnu">.css-lafmnu{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.75rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.5rem;column-gap:0.5rem;outline:none;padding-top:0.25rem;padding-bottom:0.25rem;position:relative;-webkit-text-decoration:none;text-decoration:none;background:none;border:none;overflow:hidden;padding-left:1.75rem;padding-right:0.5rem;margin-bottom:0.25rem;width:100%;}.css-lafmnu:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}.css-lafmnu:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/request-flow" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Function request flow</span></a><style data-emotion="css bxygmn">.css-bxygmn{box-sizing:border-box;font-style:normal;font-weight:600;font-size:0.75rem;line-height:1.25rem;color:rgb(255, 255, 255);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.5rem;column-gap:0.5rem;outline:none;padding-top:0.25rem;padding-bottom:0.25rem;position:relative;-webkit-text-decoration:none;text-decoration:none;background:none;border:none;overflow:hidden;padding-left:1.75rem;padding-right:0.5rem;margin-bottom:0.25rem;width:100%;background-color:rgb(31, 48, 76);}.css-bxygmn:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}.css-bxygmn:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/invocation" aria-current="page" class="css-bxygmn"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Function execution</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/visibility" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Visibility of Functions and Assets</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="20.7.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="20.7.0" class="css-1icrb9o"><style data-emotion="css 1vx51jp">.css-1vx51jp{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.875rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.25rem;column-gap:0.25rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;position:relative;-webkit-text-decoration:none;text-decoration:none;}.css-1vx51jp:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="20.7.0" type="button" aria-expanded="false" aria-controls=":R12lamlasm:" class="css-1vx51jp"><style data-emotion="css f76d15">.css-f76d15{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:rgb(136, 145, 170);height:1.25rem;width:1.25rem;-webkit-transition:-webkit-transform 150ms ease;transition:transform 150ms ease;-webkit-transform:translateX(0) rotate(0deg);-moz-transform:translateX(0) rotate(0deg);-ms-transform:translateX(0) rotate(0deg);transform:translateX(0) rotate(0deg);}</style><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="20.7.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-:Rj9l2lamlasm:"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m2bqrv">Get started</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="20.7.0" id=":R12lamlasm:" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/create-service" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Create a Service</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/assets" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Assets</span></a></div></div><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/labs/serverless-toolkit" class="css-4zrz0j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx"><span>Serverless Toolkit</span><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:Rl9alamlasm:"><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="20.7.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="20.7.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="20.7.0" type="button" aria-expanded="false" aria-controls=":R1ilamlasm:" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="20.7.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-:Rj9lilamlasm:"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m2bqrv">Developer guides</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="20.7.0" id=":R1ilamlasm:" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/client" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Runtime Client</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/handler" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Runtime Handler</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/variables" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Environment variables</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/global-infrastructure/regional-support-functions-assets" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Regional support<span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ProductRegionalIcon-:R1aialilamlasm:"><title id="ProductRegionalIcon-:R1aialilamlasm:">Twilio Global Infrastructure Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M17.343 13.167c.03-.068.055-.138.083-.207a7.905 7.905 0 00.56-2.695c.003-.088.014-.175.014-.265 0-.11-.012-.217-.017-.326-.004-.108-.007-.216-.016-.323a7.97 7.97 0 00-.08-.638 7.915 7.915 0 00-.598-1.992c-.022-.048-.046-.096-.07-.144a7.976 7.976 0 00-.42-.77c-.026-.043-.05-.086-.077-.128a8.027 8.027 0 00-.267-.385c-.016-.021-.03-.044-.046-.066a.493.493 0 00-.033-.04 7.99 7.99 0 00-14.217 3.21V8.4a8.116 8.116 0 00-.11.713l-.014.152a8.002 8.002 0 00.003 1.529l.006.052c.054.518.16 1.029.313 1.526l.003.009a7.93 7.93 0 00.996 2.072l.019.027c.273.403.583.779.925 1.125.038.039.077.076.117.114.126.123.257.242.392.357l.157.134c.017.013.032.028.049.042.008.006.017.008.026.014a7.981 7.981 0 0012.02-2.516l.011-.015c.1-.187.188-.377.271-.57zm-.37-2.647c-.006.09-.01.18-.02.269-.02.173-.047.345-.08.514-.015.083-.034.166-.052.248-.03.13-.063.258-.1.385-.017.063-.033.126-.053.188a6.94 6.94 0 01-.193.526c-.024.06-.05.118-.077.177-.026.06-.056.117-.084.175h-.967a.498.498 0 01-.494-.418l-.527-3.166A.5.5 0 0013.833 9H12.78a.5.5 0 01-.485-.621l.5-2A.499.499 0 0113.28 6h2.454a6.899 6.899 0 01.29.455c.067.112.133.226.193.342.128.25.24.505.336.766.016.043.033.086.048.13a7 7 0 01.327 1.36 7.058 7.058 0 01.066.838c.002.1-.001.2-.004.3-.003.11-.008.22-.017.33zM5.508 12.402l-.5 2.499a7.054 7.054 0 01-.424-.47A6.965 6.965 0 013 10.014v-.027c0-.228.012-.454.034-.677l.008-.067c.009-.082.025-.162.037-.243h3.14c.229 0 .43.156.484.379l.501 2.002a.5.5 0 01-.486.619h-.719a.5.5 0 00-.49.402zM9.998 17a6.955 6.955 0 01-4.12-1.353L6.409 13h.31a1.502 1.502 0 001.455-1.864l-.5-2A1.498 1.498 0 006.218 8H3.293a6.99 6.99 0 0111.596-3h-1.61c-.688 0-1.288.468-1.454 1.136l-.5 2A1.501 1.501 0 0012.78 10h.63l.457 2.75c.119.723.746 1.254 1.48 1.252h.388A6.994 6.994 0 019.999 17z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/dependencies" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Dependencies</span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="20.7.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="20.7.0" class="css-1icrb9o"><style data-emotion="css q9if6j">.css-q9if6j{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.75rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.25rem;column-gap:0.25rem;outline:none;padding-top:0.25rem;padding-bottom:0.25rem;position:relative;-webkit-text-decoration:none;text-decoration:none;}.css-q9if6j:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="20.7.0" type="button" aria-expanded="false" aria-controls=":R3alilamlasm:" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="20.7.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-:R16jbalilamlasm:"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m2bqrv">Headers and cookies</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="20.7.0" id=":R3alilamlasm:" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/headers-and-cookies" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/headers-and-cookies/access" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Access values</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/headers-and-cookies/setting-and-modifying" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Set and modify values</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/headers-and-cookies/limitations" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Limitations</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart#learn-how-headers-and-cookies-can-add-extra-functionality-and-security" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Examples</span></a></div></div><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/debugging" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Debugging</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/faq" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Frequently asked questions</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="20.7.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="20.7.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="20.7.0" type="button" aria-expanded="false" aria-controls=":R1qlamlasm:" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="20.7.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-:Rj9lqlamlasm:"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m2bqrv">Examples</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="20.7.0" id=":R1qlamlasm:" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/receive-sms" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Receive an inbound SMS</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/send-sms-and-mms" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Send SMS and MMS</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/receive-call" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Receive an incoming phone call</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/make-a-call" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Make a Call</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/api-request" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Make an API request</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/run-function-studio-widget" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Use the Run Function widget in Studio</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/real-time-data-sync" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Handle real-time data with Twilio Sync</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/basic-auth" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Protect your Function with Basic Auth</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/json-web-token" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Protect your Function with JSON Web Token</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/cookies-state" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Manage application state with cookies</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/validate-webhook-requests-from-sendgrid" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Validate Webhook requests from SendGrid</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/enabling-cors-between-flex-plugins-and-functions" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Enable CORS between Flex Plugins and Functions</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/add-delay" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Add delay</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/lookup-carrier-and-caller-info" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Determine carrier, phone number type, and caller info</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/time-of-day-routing" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Time of day routing with Functions</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/normalize-telephone-numbers" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Normalize telephone numbers</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/blocked-numbers" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Prevent blocked numbers from calling your application</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/display-versions" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Display Node.js and Twilio Helper Library versions</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/how-to-call-twilio-functions-android" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">How to call Functions from Android</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart/how-to-call-twilio-functions-ios" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">How to call Functions from iOS</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="20.7.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="20.7.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="20.7.0" type="button" aria-expanded="false" aria-controls=":R22lamlasm:" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="20.7.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-:Rj9m2lamlasm:"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m2bqrv">Migration guides</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="20.7.0" id=":R22lamlasm:" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/migrating-functionsclassic-new-functions-editor" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Migrating from Functions(Classic) to the new Functions Editor</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/node-upgrade" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qxhhlx">Node.js v18 upgrade</span></a></div></div></nav></div></aside></div><style data-emotion="css 1tfs3ue">.css-1tfs3ue{box-sizing:border-box;margin-left:0;position:relative;background-color:rgb(255, 255, 255);}@media screen and (min-width: 768px){.css-1tfs3ue{margin-left:15rem;}}</style><div data-paste-element="SIDEBAR_PUSH_CONTENT_WRAPPER" data-paste-core-version="20.7.0" class="css-1tfs3ue"><style data-emotion="css 14kurmn">.css-14kurmn{box-sizing:border-box;width:100%;min-height:4.75rem;background-color:rgb(249, 249, 250);border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(225, 227, 234);padding-left:1.5rem;padding-right:1.5rem;position:-webkit-sticky;position:sticky;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:1.5rem;column-gap:1.5rem;z-index:40;}</style><div data-paste-element="TOPBAR" data-paste-core-version="20.7.0" id="twilio-docs-topbar" class="css-14kurmn"><style data-emotion="css 1dkvjfb">.css-1dkvjfb{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-1dkvjfb{display:none;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="20.7.0" class="css-1dkvjfb"><style data-emotion="css 1nye0dd">.css-1nye0dd{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:0;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1nye0dd"><style data-emotion="css 19wcrnc">.css-19wcrnc{position:relative;-webkit-text-decoration:none;text-decoration:none;color:rgb(255, 255, 255);}.css-19wcrnc:hover{-webkit-text-decoration:underline;text-decoration:underline;}.css-19wcrnc:focus{outline:none;box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;border-radius:2px;}</style><a class="css-19wcrnc" href="/docs"><style data-emotion="css 8jah14">.css-8jah14{box-sizing:border-box;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><span data-paste-element="MEDIA_OBJECT" data-paste-core-version="20.7.0" class="css-8jah14"><style data-emotion="css and4r">.css-and4r{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-right:0.75rem;}</style><span data-paste-element="MEDIA_FIGURE" data-paste-core-version="20.7.0" class="css-and4r"><style data-emotion="css jsh2a3">.css-jsh2a3{box-sizing:border-box;line-height:0;display:block;color:rgb(242, 47, 70);width:2.5rem;height:2.5rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-jsh2a3"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-:R2da66tasm:"><title id="LogoTwilioIcon-:R2da66tasm:">Twilio Logo</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span><style data-emotion="css 1i39mnm">.css-1i39mnm{box-sizing:border-box;-webkit-flex:1;-ms-flex:1;flex:1;min-width:0;}</style><span data-paste-element="MEDIA_BODY" data-paste-core-version="20.7.0" class="css-1i39mnm"><style data-emotion="css 7aad9x">.css-7aad9x{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1rem;line-height:1.25rem;}</style><div data-paste-element="TEXT" data-paste-core-version="20.6.0" class="css-7aad9x">Twilio Docs</div></span></span></a></div></div><style data-emotion="css 8o6zg9">.css-8o6zg9{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-8o6zg9{display:none;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="20.7.0" class="css-8o6zg9"><style data-emotion="css miaxae">.css-miaxae{box-sizing:border-box;min-width:2.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-miaxae"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search" disabled=""><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div><style data-emotion="css 1b15v5e">.css-1b15v5e{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 150ms ease-in,box-shadow 150ms ease-in,color 150ms ease-in;transition:background-color 150ms ease-in,box-shadow 150ms ease-in,color 150ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:4px;cursor:pointer;color:rgb(18, 28, 45);background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #cacdd8;padding:0.25rem;}.css-1b15v5e:hover{background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #006dfa;color:rgb(2, 99, 224);}.css-1b15v5e:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;}.css-1b15v5e:active,.css-1b15v5e[data-active=true]{background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #06033a;color:rgb(6, 3, 58);}.css-1b15v5e:disabled,.css-1b15v5e:disabled:focus,.css-1b15v5e:disabled:hover,.css-1b15v5e[aria-disabled=true],.css-1b15v5e[aria-disabled=true]:focus,.css-1b15v5e[aria-disabled=true]:hover{background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #e1e3ea;color:rgb(174, 178, 193);}.css-1b15v5e[aria-pressed=true]{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #006dfa;color:rgb(2, 99, 224);}.css-1b15v5e[aria-pressed=true]:hover{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #030b5d;color:rgb(3, 11, 93);}.css-1b15v5e[aria-pressed=true]:active,.css-1b15v5e[aria-pressed=true][data-active=true]{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #06033a;color:rgb(6, 3, 58);}.css-1b15v5e[aria-pressed=true]:focus{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;color:rgb(2, 99, 224);}.css-1b15v5e[aria-pressed=true]:disabled,.css-1b15v5e[aria-pressed=true][aria-disabled=true]{background-color:rgb(225, 227, 234);box-shadow:0 0 0 1px #e1e3ea;color:rgb(255, 255, 255);}</style><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="true" aria-label="Open main navigation" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><style data-emotion="css 15m1pao">.css-15m1pao{box-sizing:border-box;width:1.75rem;height:1.75rem;position:relative;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-15m1pao"><style data-emotion="css pwk8hy">.css-pwk8hy{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:7px;left:6px;-webkit-transform:translateX(6px) translateY(4px) rotate(45deg);-moz-transform:translateX(6px) translateY(4px) rotate(45deg);-ms-transform:translateX(6px) translateY(4px) rotate(45deg);transform:translateX(6px) translateY(4px) rotate(45deg);opacity:0;}</style><span color="colorTextIcon" transform="translateX(6px) translateY(4px) rotate(45deg)" opacity="0" class="css-pwk8hy"></span><style data-emotion="css 11r4jzp">.css-11r4jzp{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:13px;left:6px;-webkit-transform:translateX(2px) translateY(-5px) rotate(45deg);-moz-transform:translateX(2px) translateY(-5px) rotate(45deg);-ms-transform:translateX(2px) translateY(-5px) rotate(45deg);transform:translateX(2px) translateY(-5px) rotate(45deg);}</style><span color="colorTextIcon" transform="translateX(2px) translateY(-5px) rotate(45deg)" class="css-11r4jzp"></span><style data-emotion="css 1j6de5r">.css-1j6de5r{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:13px;left:6px;-webkit-transform:translateX(2px) translateY(6px) rotate(-45deg);-moz-transform:translateX(2px) translateY(6px) rotate(-45deg);-ms-transform:translateX(2px) translateY(6px) rotate(-45deg);transform:translateX(2px) translateY(6px) rotate(-45deg);}</style><span color="colorTextIcon" transform="translateX(2px) translateY(6px) rotate(-45deg)" class="css-1j6de5r"></span><style data-emotion="css 1odqdkr">.css-1odqdkr{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:19px;left:6px;-webkit-transform:translateX(6px) translateY(-4px) rotate(-45deg);-moz-transform:translateX(6px) translateY(-4px) rotate(-45deg);-ms-transform:translateX(6px) translateY(-4px) rotate(-45deg);transform:translateX(6px) translateY(-4px) rotate(-45deg);opacity:0;}</style><span color="colorTextIcon" transform="translateX(6px) translateY(-4px) rotate(-45deg)" opacity="0" class="css-1odqdkr"></span></div></span></button></div><style data-emotion="css hemv1x">.css-hemv1x{box-sizing:border-box;display:none;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-hemv1x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}@media screen and (min-width: 1024px){.css-hemv1x{display:none;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="20.7.0" class="css-hemv1x"><style data-emotion="css 1grha7z">.css-1grha7z{box-sizing:border-box;min-width:150px;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1grha7z"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search" disabled=""><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div><style data-emotion="css iqez3g">.css-iqez3g{box-sizing:border-box;display:none;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-iqez3g{display:none;}}@media screen and (min-width: 1024px){.css-iqez3g{display:none;}}@media screen and (min-width: 1385px){.css-iqez3g{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="20.7.0" class="css-iqez3g"><style data-emotion="css dnwo4n">.css-dnwo4n{box-sizing:border-box;margin-bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;}</style><nav data-paste-element="IN_PAGE_NAVIGATION" data-paste-core-version="20.7.0" aria-label="Twilio products" class="css-dnwo4n"><style data-emotion="css ts22oj">.css-ts22oj{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><style data-emotion="css 1ywodxz">.css-1ywodxz{overflow-x:auto;overflow-y:hidden;overflow-scrolling:touch;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@supports (-moz-appearance:none){.css-1ywodxz{padding-bottom:0px;scrollbar-width:none;}}.css-1ywodxz::-webkit-scrollbar{height:0;}.css-1ywodxz::-webkit-scrollbar-track{background:transparent;}</style><div data-paste-element="IN_PAGE_NAVIGATION_SCROLL_WRAPPER" data-paste-core-version="20.7.0" class="css-1ywodxz"><style data-emotion="css v2gylz">.css-v2gylz{box-sizing:border-box;list-style-type:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding:0;margin:0;-webkit-column-gap:1rem;column-gap:1rem;border-bottom-width:0;border-bottom-style:none;border-bottom-color:rgb(225, 227, 234);}</style><ul data-paste-element="IN_PAGE_NAVIGATION_ITEMS" data-paste-core-version="20.7.0" class="css-v2gylz"><style data-emotion="css m5glei">.css-m5glei{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:0;}</style><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><style data-emotion="css 1jrsz7z">.css-1jrsz7z{box-sizing:border-box;color:rgb(96, 107, 133);min-width:3rem;text-align:center;font-size:0.875rem;font-weight:500;overflow:hidden;position:relative;text-overflow:ellipsis;-webkit-transition:border-color 100ms ease,color 100ms ease;transition:border-color 100ms ease,color 100ms ease;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;width:100%;display:block;border-bottom-color:transparent;border-bottom-style:solid;border-bottom-width:1px;padding-bottom:0.75rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.75rem;border-top-left-radius:8px;border-top-right-radius:8px;color:rgb(18, 28, 45);}.css-1jrsz7z:hover{border-bottom-color:rgb(3, 11, 93);border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}.css-1jrsz7z:focus{border-top-left-radius:8px;border-top-right-radius:8px;box-shadow:inset 0 0 0 1px #006dfa,inset 0 0 0 3px #cce4ff;outline:none;}</style><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" href="/docs/messaging" class="css-1jrsz7z">Messaging</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" href="/docs/voice" class="css-1jrsz7z">Voice</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" href="/docs/serverless" class="css-1jrsz7z">Serverless</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" href="/docs/flex" class="css-1jrsz7z">Flex</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" href="/docs/studio" class="css-1jrsz7z">Studio</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" href="/docs" class="css-1jrsz7z">All docs...</a></li></ul></div></nav></div><style data-emotion="css sljj2y">.css-sljj2y{box-sizing:border-box;display:none;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-sljj2y{display:none;}}@media screen and (min-width: 1024px){.css-sljj2y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="20.7.0" class="css-sljj2y"><nav data-paste-element="IN_PAGE_NAVIGATION" data-paste-core-version="20.7.0" aria-label="Libraries and help" class="css-dnwo4n"><div data-paste-element="IN_PAGE_NAVIGATION_SCROLL_WRAPPER" data-paste-core-version="20.7.0" class="css-1ywodxz"><ul data-paste-element="IN_PAGE_NAVIGATION_ITEMS" data-paste-core-version="20.7.0" class="css-v2gylz"><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" href="/docs/libraries" class="css-1jrsz7z">SDKs</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" rel="noreferrer noopener" target="_blank" href="https://help.twilio.com" class="css-1jrsz7z"><style data-emotion="css sncxrr">.css-sncxrr{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-sncxrr">Help<span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:Ralal6m6tasm:"><title id="LinkExternalIcon-:Ralal6m6tasm:">Help</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></div></a></li></ul></div></nav><style data-emotion="css inbhe0">.css-inbhe0{box-sizing:border-box;margin-left:1rem;margin-right:1rem;min-width:12rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-inbhe0"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search" disabled=""><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div><nav data-paste-element="IN_PAGE_NAVIGATION" data-paste-core-version="20.7.0" aria-label="Log in or sign up" class="css-dnwo4n"><div data-paste-element="IN_PAGE_NAVIGATION_SCROLL_WRAPPER" data-paste-core-version="20.7.0" class="css-1ywodxz"><ul data-paste-element="IN_PAGE_NAVIGATION_ITEMS" data-paste-core-version="20.7.0" class="css-v2gylz"><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" rel="noreferrer noopener" target="_blank" href="https://www.twilio.com/login" class="css-1jrsz7z">Log in</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="20.7.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="20.7.0" rel="noreferrer noopener" target="_blank" href="https://www.twilio.com/try-twilio" class="css-1jrsz7z">Sign up</a></li></ul></div></nav></div></div><style data-emotion="css m2wd1f">.css-m2wd1f{box-sizing:border-box;padding-top:5.75rem;padding-left:1.5rem;padding-right:1.5rem;background-color:rgb(255, 255, 255);position:relative;margin-left:auto;margin-right:auto;max-width:77rem;box-sizing:content-box;}@media screen and (min-width: 768px){.css-m2wd1f{padding-top:5.75rem;padding-left:1.5rem;padding-right:1.5rem;}}@media screen and (min-width: 1024px){.css-m2wd1f{padding-top:5.75rem;padding-left:3.25rem;padding-right:3.25rem;}}@media screen and (min-width: 1385px){.css-m2wd1f{padding-top:2.25rem;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" id="twilio-docs-content-area" class="css-m2wd1f"><style data-emotion="css 146sg2s">.css-146sg2s{box-sizing:border-box;display:block;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media screen and (min-width: 768px){.css-146sg2s{display:block;}}@media screen and (min-width: 1024px){.css-146sg2s{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-146sg2s"><style data-emotion="css 1jcpq9j">.css-1jcpq9j{box-sizing:border-box;display:none;-webkit-order:2;-ms-flex-order:2;order:2;margin-left:4.25rem;width:18.5rem;}@media screen and (min-width: 768px){.css-1jcpq9j{display:none;}}@media screen and (min-width: 1024px){.css-1jcpq9j{display:none;}}@media screen and (min-width: 1385px){.css-1jcpq9j{display:block;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" id="twilio-docs-content-aside-area" class="css-1jcpq9j"><style data-emotion="css 5v6lp">.css-5v6lp{box-sizing:border-box;position:-webkit-sticky;position:sticky;top:100px;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-5v6lp"><style data-emotion="css 1j4yy0t">.css-1j4yy0t{box-sizing:border-box;max-height:calc(100vh - 76px - 24px - 9rem);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1j4yy0t"><style data-emotion="css 1vgbamy">.css-1vgbamy{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.25rem;margin-bottom:0.5rem;font-weight:600;letter-spacing:-.02em;display:block;}</style><span data-paste-element="HEADING" data-paste-core-version="20.6.0" class="css-1vgbamy">On this page</span><style data-emotion="css zs6taj">.css-zs6taj{box-sizing:border-box;overflow:auto;margin-bottom:1.75rem;-webkit-flex:auto;-ms-flex:auto;flex:auto;}</style><nav data-paste-element="BOX" data-paste-core-version="20.7.0" aria-label="document outline" class="css-zs6taj"><style data-emotion="css 15sthfg">.css-15sthfg{margin:0;padding:0;list-style:none;border-left-width:1px;border-left-style:solid;border-left-color:rgb(202, 205, 216);}</style><ul class="css-15sthfg"><style data-emotion="css 7tz84n">.css-7tz84n{display:block;margin-top:1rem;font-size:0.875rem;line-height:1.5rem;border-radius:2px;}.css-7tz84n.is-current{font-weight:600;}.css-7tz84n.is-current a{color:rgb(2, 99, 224);border-color:rgb(0, 109, 250);}.css-7tz84n:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}</style><li class="is-current css-7tz84n"><style data-emotion="css yczov4">.css-yczov4{box-sizing:border-box;padding-left:2rem;color:rgb(96, 107, 133);-webkit-text-decoration:none;text-decoration:none;display:inline-block;width:100%;border-left-color:transparent;border-left-style:solid;border-left-width:2px;}.css-yczov4:focus{outline:none;border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}.css-yczov4:hover{border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#handler-method" class="css-yczov4">Handler Method</a></li><style data-emotion="css 4ao0a4">.css-4ao0a4{display:block;margin-top:0.5rem;font-size:0.75rem;line-height:1.25rem;border-radius:2px;}.css-4ao0a4.is-current{font-weight:600;}.css-4ao0a4.is-current a{color:rgb(2, 99, 224);border-color:rgb(0, 109, 250);}.css-4ao0a4:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}</style><li class=" css-4ao0a4"><style data-emotion="css bc5avt">.css-bc5avt{box-sizing:border-box;padding-left:3.25rem;color:rgb(96, 107, 133);-webkit-text-decoration:none;text-decoration:none;display:inline-block;width:100%;border-left-color:transparent;border-left-style:solid;border-left-width:2px;}.css-bc5avt:focus{outline:none;border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}.css-bc5avt:hover{border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#handler-arguments" class="css-bc5avt">Handler Arguments</a></li><li class=" css-7tz84n"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#context-object" class="css-yczov4">Context Object</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#helper-methods" class="css-bc5avt">Helper Methods</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#environment-variables" class="css-bc5avt">Environment Variables</a></li><li class=" css-7tz84n"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#event-object" class="css-yczov4">Event Object</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#webhook-parameters" class="css-bc5avt">Webhook parameters</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#parameters-from-http-requests" class="css-bc5avt">Parameters from HTTP requests</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#parameters-from-the-run-function-widget" class="css-bc5avt">Parameters from the Run Function Widget</a></li><li class=" css-7tz84n"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#callback-function" class="css-yczov4">Callback Function</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#callback-and-asynchronous-limitations" class="css-bc5avt">Callback and Asynchronous Limitations</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#callback-arguments" class="css-bc5avt">Callback Arguments</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#how-do-i-return-an-error" class="css-bc5avt">How do I return an error?</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#how-do-i-return-a-successful-response" class="css-bc5avt">How do I return a successful response?</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#how-do-i-return-twiml" class="css-bc5avt">How do I return TwiML?</a></li><li class=" css-7tz84n"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#global-classes" class="css-yczov4">Global classes</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#twilio" class="css-bc5avt">Twilio</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#runtime" class="css-bc5avt">Runtime</a></li><li class=" css-7tz84n"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#constructing-a-response" class="css-yczov4">Constructing a Response</a></li><li class=" css-4ao0a4"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#twilio-response-methods" class="css-bc5avt">Twilio Response Methods</a></li><li class=" css-7tz84n"><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#whats-next" class="css-yczov4">What&#x27;s next?</a></li></ul></nav></div></div></div><style data-emotion="css 141cahd">.css-141cahd{position:relative;min-width:0;width:100%;word-wrap:break-word;max-width:57.5rem;}.css-141cahd div+hr+section>hr{display:none;}.css-141cahd div+hr+style+section>hr{display:none;}.css-141cahd div+hr+hr{display:none;}.css-141cahd li>div[data-paste-element="BOX"]{margin-top:1.5rem;margin-bottom:1.5rem;}.css-141cahd li>ul,.css-141cahd li>ol,.css-141cahd li>p{margin-top:0;margin-bottom:0;}</style><style data-emotion="css grr5en">.css-grr5en{box-sizing:border-box;position:relative;min-width:0;width:100%;word-wrap:break-word;max-width:57.5rem;}.css-grr5en div+hr+section>hr{display:none;}.css-grr5en div+hr+style+section>hr{display:none;}.css-grr5en div+hr+hr{display:none;}.css-grr5en li>div[data-paste-element="BOX"]{margin-top:1.5rem;margin-bottom:1.5rem;}.css-grr5en li>ul,.css-grr5en li>ol,.css-grr5en li>p{margin-top:0;margin-bottom:0;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-grr5en"><style data-emotion="css 2g10on">.css-2g10on{box-sizing:border-box;display:block;}@media screen and (min-width: 768px){.css-2g10on{display:block;}}@media screen and (min-width: 1024px){.css-2g10on{display:block;}}@media screen and (min-width: 1385px){.css-2g10on{display:none;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-2g10on"><style data-emotion="css 6yc7tt">.css-6yc7tt{box-sizing:border-box;display:block;position:fixed;top:76px;margin-left:-1.5rem;margin-right:-1.5rem;padding-left:1.5rem;padding-top:1.5rem;padding-bottom:1.5rem;background-color:rgb(255, 255, 255);width:-webkit-fill-available;width:-moz-available;width:fill-available;z-index:20;}</style><nav data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-6yc7tt"><style data-emotion="css zv9zrj">.css-zv9zrj{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:4px;cursor:pointer;color:rgb(18, 28, 45);background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #cacdd8;padding-top:0.5rem;padding-bottom:0.5rem;padding-left:0.75rem;padding-right:0.75rem;font-size:0.875rem;line-height:1.25rem;}.css-zv9zrj:hover{-webkit-text-decoration:none;text-decoration:none;color:rgb(2, 99, 224);background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #006dfa;}.css-zv9zrj:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;}.css-zv9zrj:active,.css-zv9zrj[data-active=true]{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #001489;color:rgb(0, 20, 137);background-color:rgb(244, 249, 255);}</style><button data-paste-element="MENU_BUTTON" data-paste-core-version="20.7.0" type="button" aria-expanded="false" aria-controls=":Rhlaatasm:" aria-haspopup="menu" aria-busy="false" class="css-zv9zrj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j">On this page<span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ChevronDownIcon-:R56dhlaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M6.293 8.293a1 1 0 011.32-.083l.094.083L10 10.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-3 3a1 1 0 01-1.32.083l-.094-.083-3-3a1 1 0 010-1.414z"></path></svg></span></span></button><style data-emotion="css 31h1qt">.css-31h1qt{box-sizing:border-box;background-color:rgb(255, 255, 255);border-style:solid;border-width:1px;border-color:rgb(225, 227, 234);border-radius:8px;box-shadow:0 4px 16px 0 rgba(18, 28, 45, 0.2);max-width:18.5rem;min-width:12rem;z-index:20;padding-top:0.5rem;padding-bottom:0.5rem;overflow-y:scroll;max-height:18.5rem;}.css-31h1qt:focus{outline:none;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" id=":Rhlaatasm:" hidden="" style="display:none;position:fixed;left:100%;top:100%" role="menu" tabindex="-1" data-dialog="true" aria-orientation="vertical" aria-label="document outline" class="css-31h1qt"><style data-emotion="css oa1jzu">.css-oa1jzu{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;border:none;display:block;text-align:left;font-family:inherit;font-size:0.875rem;font-weight:400;line-height:1.25rem;margin:0;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;border-left-style:solid;border-left-width:2px;border-color:transparent;cursor:pointer;padding-left:1.5rem;padding-right:1.5rem;width:100%;color:rgb(18, 28, 45);-webkit-text-decoration:none;text-decoration:none;color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);border-color:rgb(0, 109, 250);}.css-oa1jzu:hover{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);border-color:rgb(0, 109, 250);}.css-oa1jzu:focus{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);border-color:rgb(0, 109, 250);}.css-oa1jzu:disabled,.css-oa1jzu:disabled:focus,.css-oa1jzu:disabled:hover,.css-oa1jzu[aria-disabled=true],.css-oa1jzu[aria-disabled=true]:focus,.css-oa1jzu[aria-disabled=true]:hover{color:rgb(174, 178, 193);cursor:not-allowed;background-color:rgb(255, 255, 255);border-color:transparent;}</style><a data-paste-element="MOBILE_TOC_MENU_LINK_ACTIVE" data-paste-core-version="20.7.0" href="#handler-method" id=":Rhlaatasm:-1" role="menuitem" class="css-oa1jzu"><style data-emotion="css roynbj">.css-roynbj{box-sizing:border-box;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Handler Method</div></a><style data-emotion="css rrw0kl">.css-rrw0kl{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;border:none;display:block;text-align:left;font-family:inherit;font-size:0.875rem;font-weight:400;line-height:1.25rem;margin:0;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;border-left-style:solid;border-left-width:2px;border-color:transparent;cursor:pointer;padding-left:1.5rem;padding-right:1.5rem;width:100%;color:rgb(18, 28, 45);-webkit-text-decoration:none;text-decoration:none;}.css-rrw0kl:hover{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);border-color:rgb(0, 109, 250);}.css-rrw0kl:focus{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);border-color:rgb(0, 109, 250);}.css-rrw0kl:disabled,.css-rrw0kl:disabled:focus,.css-rrw0kl:disabled:hover,.css-rrw0kl[aria-disabled=true],.css-rrw0kl[aria-disabled=true]:focus,.css-rrw0kl[aria-disabled=true]:hover{color:rgb(174, 178, 193);cursor:not-allowed;background-color:rgb(255, 255, 255);border-color:transparent;}</style><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#handler-arguments" id=":Rhlaatasm:-2" role="menuitem" class="css-rrw0kl"><style data-emotion="css kyczyy">.css-kyczyy{box-sizing:border-box;padding-left:1.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Handler Arguments</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#context-object" id=":Rhlaatasm:-3" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Context Object</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#helper-methods" id=":Rhlaatasm:-4" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Helper Methods</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#environment-variables" id=":Rhlaatasm:-5" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Environment Variables</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#event-object" id=":Rhlaatasm:-6" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Event Object</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#webhook-parameters" id=":Rhlaatasm:-7" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Webhook parameters</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#parameters-from-http-requests" id=":Rhlaatasm:-8" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Parameters from HTTP requests</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#parameters-from-the-run-function-widget" id=":Rhlaatasm:-9" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Parameters from the Run Function Widget</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#callback-function" id=":Rhlaatasm:-10" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Callback Function</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#callback-and-asynchronous-limitations" id=":Rhlaatasm:-11" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Callback and Asynchronous Limitations</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#callback-arguments" id=":Rhlaatasm:-12" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Callback Arguments</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#how-do-i-return-an-error" id=":Rhlaatasm:-13" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">How do I return an error?</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#how-do-i-return-a-successful-response" id=":Rhlaatasm:-14" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">How do I return a successful response?</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#how-do-i-return-twiml" id=":Rhlaatasm:-15" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">How do I return TwiML?</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#global-classes" id=":Rhlaatasm:-16" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Global classes</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#twilio" id=":Rhlaatasm:-17" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Twilio</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#runtime" id=":Rhlaatasm:-18" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Runtime</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#constructing-a-response" id=":Rhlaatasm:-19" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Constructing a Response</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#twilio-response-methods" id=":Rhlaatasm:-20" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-kyczyy">Twilio Response Methods</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="20.7.0" href="#whats-next" id=":Rhlaatasm:-21" role="menuitem" class="css-rrw0kl"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">What&#x27;s next?</div></a></div></nav></div><style data-emotion="css m8ey6p">.css-m8ey6p{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-column-gap:0.75rem;column-gap:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css 10br7e4">.css-10br7e4{margin:0;padding:0;color:rgb(18, 28, 45);font-size:2rem;line-height:2.5rem;margin-bottom:0;font-weight:600;letter-spacing:-.02em;display:block;}</style><h1 data-paste-element="HEADING" data-paste-core-version="20.6.0" class="css-10br7e4">Function Execution</h1></div><style data-emotion="css 7lkj4y">section:focus-within .css-7lkj4y,section:hover .css-7lkj4y{opacity:1;}</style><style data-emotion="css 136zex2">.css-136zex2{box-sizing:border-box;opacity:1;-webkit-transition:opacity 0.25s ease-in-out;transition:opacity 0.25s ease-in-out;}section:focus-within .css-136zex2,section:hover .css-136zex2{opacity:1;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-136zex2"><style data-emotion="css knmi57">.css-knmi57{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-column-gap:0.75rem;column-gap:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R2cqlaalaatasm:"><title id="ThumbsUpIcon-:R2cqlaalaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R2dalaalaatasm:"><title id="ThumbsDownIcon-:R2dalaalaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><style data-emotion="css 1y5brhz">.css-1y5brhz{box-sizing:border-box;margin:0;margin-bottom:2.25rem;margin-top:2.25rem;border-width:0;border-color:rgb(225, 227, 234);border-style:solid;border-bottom-width:1px;width:auto;}</style><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><style data-emotion="css tcah8o">.css-tcah8o{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.5rem;font-weight:400;margin-bottom:1.5rem;}</style><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The Twilio Function runtime environment is lightweight by design to provide developers with all the flexibility they need. Read on to learn about how your code is executed, what variables and tools this environment provides, and ways you could create a valid response.</p> <p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">During Function invocation, the following steps occur:</p> <style data-emotion="css w38rkw">.css-w38rkw{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.5rem;margin-bottom:1.5rem;font-weight:400;margin-left:1.5rem;list-style-type:decimal;}</style><ol data-paste-element="ORDERED_LIST" data-paste-core-version="20.6.0" type="1" class="css-w38rkw"> <style data-emotion="css 1pp5a8v">.css-1pp5a8v{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.5rem;font-weight:400;margin-bottom:0.5rem;margin-top:0.5rem;}</style><li data-paste-element="LIST_ITEM" data-paste-core-version="20.6.0" class="css-1pp5a8v"><strong>Environment Bootstrap -</strong> The Twilio Function environment is bootstrapped, and any resources your Function code may rely on are quickly initialized.</li> <li data-paste-element="LIST_ITEM" data-paste-core-version="20.6.0" class="css-1pp5a8v"><strong>Handler Execution</strong> <strong>-</strong> The Twilio Environment will then execute the <style data-emotion="css 1kwd7zr">.css-1kwd7zr{box-sizing:border-box;border-width:1px;border-style:solid;border-radius:4px;font-family:'TwilioSansMono',Courier,monospace;font-size:inherit;line-height:inherit;padding-left:0.25rem;padding-right:0.25rem;color:inherit;background-color:rgb(249, 249, 250);border-color:rgb(202, 205, 216);}</style><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">exports.handler</code> method that your code defines, and provide the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">context</code>, <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code>, and <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> parameters, in addition to a selection of useful global utility methods.</li> <li data-paste-element="LIST_ITEM" data-paste-core-version="20.6.0" class="css-1pp5a8v"><strong>Response Emitted</strong> <strong>-</strong> When your Twilio Function code has completed, your code must call the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback()</code> method in order to emit your response. After executing the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback()</code> method, your Twilio Function execution will be terminated. This includes any asynchronous processes that may still be executing.</li> </ol> <section id="handler-method-section-indexable"><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css gt12nx">.css-gt12nx{box-sizing:border-box;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;margin-bottom:1.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-gt12nx"><style data-emotion="css 16k5vxt">.css-16k5vxt{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1.5rem;line-height:2rem;margin-bottom:0;font-weight:600;letter-spacing:-.02em;display:inline;}</style><h2 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="handler-method" class="css-16k5vxt">Handler Method</h2><style data-emotion="css f02h4i">.css-f02h4i{box-sizing:border-box;margin-bottom:0;-webkit-text-decoration:none;text-decoration:none;margin-left:0.5rem;color:rgb(96, 107, 133);border-radius:2px;outline:none;display:inline-block;vertical-align:text-bottom;}.css-f02h4i:hover{color:rgb(3, 11, 93);}.css-f02h4i:focus{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#handler-method" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj91slaatasm:"><title id="LinkIcon-:R1aj91slaatasm:">handler-method page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><style data-emotion="css 1kam78h">.css-1kam78h{box-sizing:border-box;opacity:0;-webkit-transition:opacity 0.25s ease-in-out;transition:opacity 0.25s ease-in-out;}section:focus-within .css-1kam78h,section:hover .css-1kam78h{opacity:1;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal91slaatasm:"><title id="ThumbsUpIcon-:R9jal91slaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal91slaatasm:"><title id="ThumbsDownIcon-:R9lal91slaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">handler</code> method is the interface between Twilio Functions and your application logic. You can think of the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">handler</code> method as the entry point to your application. This is somewhat analogous to a <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">main()</code> function in Java or <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">__init__</code> in Python.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Twilio Functions will execute your <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">handler</code> method when it is ready to hand off control of execution to your application logic. If your Function Code does not contain a <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">handler</code> method, Twilio Functions will be unable to execute your logic and will emit an HTTP 500 error.</p></section> <section id="handler-arguments-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css a8lapc">.css-a8lapc{box-sizing:border-box;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;margin-bottom:1rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><style data-emotion="css yftbgj">.css-yftbgj{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1.25rem;line-height:1.75rem;margin-bottom:0;font-weight:600;letter-spacing:-.02em;display:inline;}</style><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="handler-arguments" class="css-yftbgj">Handler Arguments</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#handler-arguments" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj92claatasm:"><title id="LinkIcon-:R1aj92claatasm:">handler-arguments page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal92claatasm:"><title id="ThumbsUpIcon-:R9jal92claatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal92claatasm:"><title id="ThumbsDownIcon-:R9lal92claatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><style data-emotion="css 161rs34">.css-161rs34{box-sizing:border-box;margin-bottom:1.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-161rs34"><style data-emotion="css 1pev1tl">.css-1pev1tl{box-sizing:border-box;overflow-x:auto;}</style><div data-paste-element="TABLE_WRAPPER" data-paste-core-version="20.7.0" class="css-1pev1tl"><style data-emotion="css 1yrg7uf">.css-1yrg7uf{box-sizing:border-box;border-collapse:separate;border-color:rgb(225, 227, 234);border-spacing:0;border-style:solid;border-width:1px;table-layout:auto;width:100%;}</style><table data-paste-element="TABLE" data-paste-core-version="20.7.0" class="css-1yrg7uf"><style data-emotion="css c08gur">.css-c08gur{background-color:rgb(249, 249, 250);color:rgb(96, 107, 133);box-sizing:border-box;}</style><thead data-paste-element="THEAD" data-paste-core-version="20.7.0" class="css-c08gur"><style data-emotion="css 1e22c8r">.css-1e22c8r{box-sizing:border-box;vertical-align:middle;}.css-1e22c8r:nth-of-type(even){background-color:transparent;}.css-1e22c8r:last-of-type{border-width:0;}</style><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><style data-emotion="css kczchh">.css-kczchh{box-sizing:border-box;border-bottom-style:solid;border-bottom-color:rgb(225, 227, 234);border-bottom-width:1px;font-size:0.875rem;line-height:1.25rem;font-weight:600;padding-bottom:0.75rem;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;position:relative;text-align:left;vertical-align:inherit;word-wrap:break-word;color:inherit;}</style><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Argument</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Type</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Description</th></tr></thead><style data-emotion="css dzsvvb">.css-dzsvvb{box-sizing:border-box;color:rgb(18, 28, 45);}</style><style data-emotion="css 1u05hs8">.css-1u05hs8{background-color:rgb(255, 255, 255);box-sizing:border-box;color:rgb(18, 28, 45);}.css-1u05hs8>tr:last-of-type>td{border-bottom-width:0;}.css-1u05hs8>tr:last-of-type>th{border-bottom-width:0;}</style><tbody data-paste-element="TBODY" data-paste-core-version="20.7.0" class="css-1u05hs8"><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><style data-emotion="css 4rjmal">.css-4rjmal{box-sizing:border-box;border-style:solid;border-color:rgb(225, 227, 234);border-width:0;border-bottom-width:1px;font-size:0.875rem;line-height:1.25rem;padding:1rem;position:relative;text-align:left;vertical-align:inherit;word-wrap:break-word;color:inherit;}</style><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">context</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">object</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Provides information about the current execution environment</td></tr><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">object</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Contains the request parameters passed into your Twilio Function</td></tr><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">function</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Function used to complete execution and emit responses</td></tr></tbody></table></div></div></section> <section id="handler-method-boilerplate-section"><style data-emotion="css 104sreq">.css-104sreq{box-sizing:border-box;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;margin-bottom:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><style data-emotion="css 3y2hwy">.css-3y2hwy{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1rem;line-height:1.5rem;margin-bottom:0.5rem;font-weight:600;letter-spacing:-.02em;display:inline;}</style><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="handler-method-boilerplate" class="css-3y2hwy">Handler Method Boilerplate</h4><style data-emotion="css 138wi13">.css-138wi13{box-sizing:border-box;-webkit-text-decoration:none;text-decoration:none;margin-left:0.5rem;color:rgb(96, 107, 133);border-radius:2px;outline:none;display:inline-block;vertical-align:text-bottom;}.css-138wi13:hover{color:rgb(3, 11, 93);}.css-138wi13:focus{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#handler-method-boilerplate" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R592slaatasm:"><title id="LinkIcon-:R592slaatasm:">handler-method-boilerplate page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Twilio Function Handler Method Boilerplate</p><style data-emotion="css slcqjs">.css-slcqjs{box-sizing:border-box;margin-bottom:1.5rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><style data-emotion="css 1ft5k6i">.css-1ft5k6i{box-sizing:border-box;background-color:rgb(31, 48, 76);border-radius:4px;overflow:hidden;}</style><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><style data-emotion="css 1lrte93">.css-1lrte93{box-sizing:border-box;background-color:rgb(18, 28, 45);display:grid;grid-template-rows:auto 1fr;grid-template-areas:"button-group" "code-block";row-gap:0.25rem;padding-top:1rem;}</style><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><style data-emotion="css ba3ttd">.css-ba3ttd{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.75rem;column-gap:0.75rem;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;grid-area:button-group;padding-right:1.5rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css 11aawc9">.css-11aawc9{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:4px;cursor:pointer;color:rgb(255, 255, 255);background-color:rgb(18, 28, 45);box-shadow:0 0 0 1px #394762;padding:0.25rem;}.css-11aawc9:hover{-webkit-text-decoration:none;text-decoration:none;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);box-shadow:0 0 0 1px #f4f4f6;}.css-11aawc9:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #394762,0 0 0 3px #121c2d,0 0 0 4px #ffffff,0 0 0 6px rgba(255, 255, 255, 0.2);}.css-11aawc9:active,.css-11aawc9[data-active=true]{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #ffffff;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);}</style><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16db2slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76db2slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><style data-emotion="css 1cbdvo6">.css-1cbdvo6{box-sizing:border-box;border:none;clip:rect(0 0 0 0);height:1px;margin:-0.125rem;overflow:hidden;padding:0;position:absolute;text-transform:none;white-space:nowrap;width:1px;}</style><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><style data-emotion="css 1yf26d7">.css-1yf26d7{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow-x:auto;grid-area:code-block;}</style><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><style data-emotion="css 1p78m0">.css-1p78m0{display:grid;}.css-1p78m0:focus{outline:none;box-shadow:inset 0 0 0 1px #006dfa,inset 0 0 0 3px #cce4ff;border-radius:4px;}</style><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css 519pyc">.css-519pyc{box-sizing:border-box;display:inline-block;box-sizing:content-box;opacity:0.5;padding-left:1.5rem;padding-right:1.5ch;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:1ch;}</style><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><style data-emotion="css luzz01">.css-luzz01{box-sizing:border-box;display:inline-block;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Your application logic</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <!-- --> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// To emit a response and stop execution, call the callback() method</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span></div></div></div></div></pre></div></div></div></div></section> <section id="context-object-section-indexable"><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="context-object" class="css-16k5vxt">Context Object</h2><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#context-object" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj93claatasm:"><title id="LinkIcon-:R1aj93claatasm:">context-object page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal93claatasm:"><title id="ThumbsUpIcon-:R9jal93claatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal93claatasm:"><title id="ThumbsDownIcon-:R9lal93claatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Twilio Functions provides the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">context</code> object as an interface between the current execution environment and the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">handler</code> method. The <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">context</code> object provides access to helper methods, as well as your Environment Variables.</p></section> <section id="helper-methods-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="helper-methods" class="css-yftbgj">Helper Methods</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#helper-methods" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj93slaatasm:"><title id="LinkIcon-:R1aj93slaatasm:">helper-methods page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal93slaatasm:"><title id="ThumbsUpIcon-:R9jal93slaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal93slaatasm:"><title id="ThumbsDownIcon-:R9lal93slaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">context</code> object provides helper methods that pre-initialize common utilities and clients that you might find useful when building your application. These helper methods extract all their required configuration from Environment Variables.</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-161rs34"><div data-paste-element="TABLE_WRAPPER" data-paste-core-version="20.7.0" class="css-1pev1tl"><table data-paste-element="TABLE" data-paste-core-version="20.7.0" class="css-1yrg7uf"><thead data-paste-element="THEAD" data-paste-core-version="20.7.0" class="css-c08gur"><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Method</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Type</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Description</th></tr></thead><tbody data-paste-element="TBODY" data-paste-core-version="20.7.0" class="css-1u05hs8"><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">getTwilioClient()</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Twilio REST Helper</td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">If you have enabled the inclusion of your account credentials in your Function, this will return an initialized <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="https://github.com/twilio/twilio-node" rel="noreferrer noopener" target="_blank" title="Twilio REST Helper Library" class="css-lpeit6"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Twilio REST Helper Library<style data-emotion="css 1ezs782">.css-1ezs782{box-sizing:border-box;display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;vertical-align:middle;}</style><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:Rlanalb3slaatasm:"><title id="LinkExternalIcon-:Rlanalb3slaatasm:">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a>. If you have not included account credentials in your Function, calling this method will result in an error. If your code doesn&#x27;t catch this error, it will result in an HTTP 500 response.</td></tr></tbody></table></div></div></section> <section id="use-built-in-twilio-rest-helper-to-send-an-sms-message-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="use-built-in-twilio-rest-helper-to-send-an-sms-message" class="css-3y2hwy">Use built-in Twilio REST Helper to send an SMS Message</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#use-built-in-twilio-rest-helper-to-send-an-sms-message" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R594claatasm:"><title id="LinkIcon-:R594claatasm:">use-built-in-twilio-rest-helper-to-send-an-sms-message page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of using built-in Twilio REST Helper</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16db4claatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76db4claatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css 1m136ci">.css-1m136ci{box-sizing:border-box;display:inline-block;box-sizing:content-box;opacity:0.5;padding-left:1.5rem;padding-right:1.5ch;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:2ch;}</style><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Access the pre-initialized Twilio REST client</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">twilioClient</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">context.</span><span style="color:#D2A8FF">getTwilioClient</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Determine message details from the incoming event, with fallback values</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">from</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.From</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;+15095550100&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">to</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.To</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;+15105550101&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">body</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.Body</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;Ahoy, World!&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">twilioClient.messages</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">create</span><span style="color:#C9D1D9">({ to, from, body })</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">then</span><span style="color:#C9D1D9">((</span><span style="color:#FFA657">result</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Created message using callback&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(result.sid);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">})</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">catch</span><span style="color:#C9D1D9">((</span><span style="color:#FFA657">error</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">error</span><span style="color:#C9D1D9">(error);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(error);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">});</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="environment-variables-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="environment-variables" class="css-yftbgj">Environment Variables</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#environment-variables" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj94slaatasm:"><title id="LinkIcon-:R1aj94slaatasm:">environment-variables page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal94slaatasm:"><title id="ThumbsUpIcon-:R9jal94slaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal94slaatasm:"><title id="ThumbsDownIcon-:R9lal94slaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">We encourage developers to use Environment Variables to separate their code from configuration. Using Environment Variables ensures that your code is portable, and that simple configuration changes can be made instantly.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">For a more in-depth explanation and examples, refer to the Environment Variables documentation.</p></section> <section id="retrieve-domain-from-default-environment-variables-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="retrieve-domain-from-default-environment-variables" class="css-3y2hwy">Retrieve Domain from Default Environment Variables</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#retrieve-domain-from-default-environment-variables" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R595claatasm:"><title id="LinkIcon-:R595claatasm:">retrieve-domain-from-default-environment-variables page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to access the Default Environment Variables</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16db5claatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76db5claatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Check to see if the Domain name is null</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">domain</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">context.</span><span style="color:#79C0FF">DOMAIN_NAME</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;No Domain available&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Respond with the Domain hosting this Function</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, domain);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="retrieve-environment-variables-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="retrieve-environment-variables" class="css-3y2hwy">Retrieve Environment Variables</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#retrieve-environment-variables" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R595slaatasm:"><title id="LinkIcon-:R595slaatasm:">retrieve-environment-variables page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to access Environment Variables</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16db5slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76db5slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Get the primary and secondary phone numbers, if set</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">primary</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">context.</span><span style="color:#79C0FF">PRIMARY_PHONE_NUMBER</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;There is no primary number&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">secondary</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">context.</span><span style="color:#79C0FF">SECONDARY_PHONE_NUMBER</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;There is no secondary number!&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Build our response object</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">phone_numbers: {</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">primary,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">backup: secondary,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">},</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">};</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Return the response object as JSON</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="event-object-section-indexable"><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="event-object" class="css-16k5vxt">Event Object</h2><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#event-object" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj96claatasm:"><title id="LinkIcon-:R1aj96claatasm:">event-object page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal96claatasm:"><title id="ThumbsUpIcon-:R9jal96claatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal96claatasm:"><title id="ThumbsDownIcon-:R9lal96claatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> object contains the request parameters and headers being passed into your Function. Both <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">POST</code> and <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">GET</code> parameters will be collapsed into the same object. For <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">POST</code> requests, you can pass either form encoded parameters or JSON documents; both will be collapsed into the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> object.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The specific values that you&#x27;ll be able to access on <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> are dependent on what context your Function is being used in and what parameters it is receiving. We&#x27;ll cover some common use cases and general scenarios below, so you can get the most out of <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code>.</p></section> <section id="webhook-parameters-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="webhook-parameters" class="css-yftbgj">Webhook parameters</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#webhook-parameters" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R2l6h6slaatasm:"><title id="LinkIcon-:R2l6h6slaatasm:">webhook-parameters page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:Rj6lah6slaatasm:"><title id="ThumbsUpIcon-:Rj6lah6slaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:Rjalah6slaatasm:"><title id="ThumbsDownIcon-:Rjalah6slaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">If you have configured your Function to act as the webhook for an action, such as an incoming SMS or phone call, <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> will contain a very specific set of values related to the phone number in question. These will be values such as <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event.From</code>, which resolves to the E.164 formatted phone number as a string, <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event.Body</code>, which returns the text message of an incoming SMS, and many more. For example, an incoming message will result in <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> having this shape:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R2cqj6slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:Rd6ecqj6slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="json" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;ToCountry&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;US&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;ToState&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;CA&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;SmsMessageSid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;NumMedia&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;0&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;ToCity&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;BOULEVARD&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;FromZip&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;SmsSid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;FromState&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;WA&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;SmsStatus&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;received&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;FromCity&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;Body&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Ahoy!&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;FromCountry&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;US&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;To&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+15555555555&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;ToZip&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;91934&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;NumSegments&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;1&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;MessageSid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;AccountSid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;From&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+14444444444&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;ApiVersion&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;2010-04-01&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;request&quot;</span><span style="color:#C9D1D9">: {</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">22</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;headers&quot;</span><span style="color:#C9D1D9">: {</span> <span style="color:#FFA198;font-style:italic">...</span> <span style="color:#C9D1D9">},</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">23</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;cookies&quot;</span><span style="color:#C9D1D9">: {</span> <span style="color:#FFA198;font-style:italic">...</span> <span style="color:#C9D1D9">}</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">24</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">},</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">25</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span></div></div></div></div></pre></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Refer to the dedicated <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/messaging/guides/webhook-request#parameters-in-twilios-request-to-your-application" title="Messaging" class="css-lpeit6">Messaging</a> and <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/voice/twiml#request-parameters" title="Voice" class="css-lpeit6">Voice</a> Webhook documentation to learn the full list of properties which you can leverage in your Functions.</p><style data-emotion="css irnnze">.css-irnnze{margin-top:1.5rem;margin-bottom:1.5rem;}.css-irnnze h1,.css-irnnze h2,.css-irnnze h3,.css-irnnze h4,.css-irnnze h5,.css-irnnze h6,.css-irnnze p,.css-irnnze li,.css-irnnze ul,.css-irnnze ol,.css-irnnze [data-paste-element=DISCLOSURE] span[data-paste-element=HEADING]{color:inherit;}[data-paste-element=HORIZONTAL_TAB_PANEL] .css-irnnze{margin-top:0;}</style><style data-emotion="css rj5eb">.css-rj5eb{box-sizing:border-box;margin-top:1.5rem;margin-bottom:1.5rem;}.css-rj5eb h1,.css-rj5eb h2,.css-rj5eb h3,.css-rj5eb h4,.css-rj5eb h5,.css-rj5eb h6,.css-rj5eb p,.css-rj5eb li,.css-rj5eb ul,.css-rj5eb ol,.css-rj5eb [data-paste-element=DISCLOSURE] span[data-paste-element=HEADING]{color:inherit;}[data-paste-element=HORIZONTAL_TAB_PANEL] .css-rj5eb{margin-top:0;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-rj5eb"><style data-emotion="css 1v816ix">.css-1v816ix{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:1.5rem;border-left-style:solid;border-left-width:2px;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-column-gap:1rem;column-gap:1rem;background-color:rgb(249, 249, 250);color:rgb(3, 11, 93);border-color:rgb(102, 179, 255);}</style><div data-paste-element="CALLOUT" data-paste-core-version="20.7.0" class="css-1v816ix"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css 1cst9vu">.css-1cst9vu{box-sizing:border-box;line-height:0;display:block;color:rgb(3, 11, 93);width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-1cst9vu"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="NeutralIcon-:Rcql6slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 7c-.26.01-.528.08-.707.24-.178.158-.292.355-.292.575v3.37c0 .21.11.428.292.577.173.14.457.247.707.237.26-.008.528-.078.707-.237.178-.16.292-.355.292-.577v-3.37a.766.766 0 00-.292-.575A1.14 1.14 0 0010 9zm0-3l-.266.036c-.17.047-.318.131-.441.253l-.156.198A.958.958 0 009 6.98v.04a.728.728 0 00.086.378c.04.121.108.227.206.315.09.094.197.163.321.202.12.06.248.09.386.084l.266-.035c.17-.047.318-.131.441-.253l.156-.198A.958.958 0 0011 7.02v-.04a.728.728 0 00-.086-.378.721.721 0 00-.206-.315.757.757 0 00-.321-.202.767.767 0 00-.386-.084z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">(information)</span></div><style data-emotion="css fkfdww">.css-fkfdww{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;row-gap:0.5rem;-webkit-flex:1;-ms-flex:1;flex:1;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-fkfdww"><style data-emotion="css kevsq9">.css-kevsq9{margin:0;padding:0;color:currentColor;font-size:0.875rem;line-height:1.25rem;font-weight:600;}</style><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="20.6.0" class="css-kevsq9">Info</h2><style data-emotion="css 8tmauh">.css-8tmauh{display:grid;grid-gap:0;word-break:break-word;}.css-8tmauh >:last-child{margin-bottom:0;}.css-8tmauh ul,.css-8tmauh ol{margin-top:-0.5rem;}</style><style data-emotion="css 1ircowi">.css-1ircowi{box-sizing:border-box;display:grid;grid-gap:0;word-break:break-word;}.css-1ircowi >:last-child{margin-bottom:0;}.css-1ircowi ul,.css-1ircowi ol{margin-top:-0.5rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Webhook properties are always in <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="https://en.wikipedia.org/wiki/Camel_case#:~:text=PascalCase%20for%20upper%20camel%20case" rel="noreferrer noopener" target="_blank" title="PascalCase" class="css-lpeit6"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">PascalCase<span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:R2l5alal6slaatasm:"><title id="LinkExternalIcon-:R2l5alal6slaatasm:">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a>; check to make sure that you have capitalized the first letter of commonly used variables, such as <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">From</code>.</p></div></div></div></div></section> <section id="access-webhook-values-from-event-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="access-webhook-values-from-event" class="css-3y2hwy">Access webhook values from event</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#access-webhook-values-from-event" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R597claatasm:"><title id="LinkIcon-:R597claatasm:">access-webhook-values-from-event page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to access webhook values by name from the event object in a Function</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16db7claatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76db7claatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Prepare a new messaging response object; no need to import Twilio</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">twiml</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.twiml.</span><span style="color:#D2A8FF">MessagingResponse</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Access incoming text information like the from number and contents off of `event`</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Access environment variables and other runtime data from `context`</span> </div></div></div><style data-emotion="css qrrnn4">.css-qrrnn4{box-sizing:border-box;background-color:#ffffff0b;box-shadow:inset 4px 0 0 0 rgb(153, 205, 255);}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-qrrnn4"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">twiml.</span><span style="color:#D2A8FF">message</span><span style="color:#C9D1D9">({ to: context.</span><span style="color:#79C0FF">MY_NUMBER</span> <span style="color:#C9D1D9">},</span> <span style="color:#A5D6FF">`${</span><span style="color:#C9D1D9">event</span><span style="color:#A5D6FF">.</span><span style="color:#C9D1D9">From</span><span style="color:#A5D6FF">}: ${</span><span style="color:#C9D1D9">event</span><span style="color:#A5D6FF">.</span><span style="color:#C9D1D9">Body</span><span style="color:#A5D6FF">}`</span><span style="color:#C9D1D9">);</span> </div></div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Remember to return the TwiML as the second argument to `callback`</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, twiml);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="parameters-from-http-requests-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="parameters-from-http-requests" class="css-yftbgj">Parameters from HTTP requests</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#parameters-from-http-requests" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R5ad17slaatasm:"><title id="LinkIcon-:R5ad17slaatasm:">parameters-from-http-requests page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R16dal17slaatasm:"><title id="ThumbsUpIcon-:R16dal17slaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R16lal17slaatasm:"><title id="ThumbsDownIcon-:R16lal17slaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">If your Function is being executed in response to an incoming HTTP request, then the contents of <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> will directly correspond to the request&#x27;s query parameters and request body (if any).</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">For example, given a Function with the URL of <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">http-7272.twil.io/response</code> and this request:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><style data-emotion="css 1d8ad8q">.css-1d8ad8q{box-sizing:border-box;background-color:rgb(18, 28, 45);display:grid;grid-template-columns:1fr auto;grid-template-areas:"code-block button-group";-webkit-column-gap:0.75rem;column-gap:0.75rem;border-radius:4px;padding-top:1.25rem;padding-bottom:1.25rem;}</style><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1d8ad8q"><style data-emotion="css 1gqdom6">.css-1gqdom6{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.75rem;column-gap:0.75rem;grid-area:button-group;padding-right:1.5rem;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1gqdom6"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R4pl47slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:Rqcspl47slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><style data-emotion="css 1f9wiu0">.css-1f9wiu0{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow-x:auto;grid-area:code-block;padding-left:1.5rem;}</style><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1f9wiu0"><pre data-theme="github-dark" data-lang="shellscript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div><span style="color:#FFA657">curl</span> <span style="color:#79C0FF">-X</span> <span style="color:#A5D6FF">GET &#x27;https://http-7272.twil.io/response?age=42&amp;firstName=Rick&#x27;</span></div></div></pre></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The resulting event object will be:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R4pl67slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:Rqcspl67slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="json" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;firstName&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Rick&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;age&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;42&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;request&quot;</span><span style="color:#C9D1D9">: {</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;headers&quot;</span><span style="color:#C9D1D9">: {</span> <span style="color:#FFA198;font-style:italic">...</span> <span style="color:#C9D1D9">},</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;cookies&quot;</span><span style="color:#C9D1D9">: {</span> <span style="color:#FFA198;font-style:italic">...</span> <span style="color:#C9D1D9">}</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">}</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span></div></div></div></div></pre></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Similarly, given a <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">POST</code> request with query parameters, a JSON body, or both such as:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R4pl87slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:Rqcspl87slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="shellscript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#FFA657">curl</span> <span style="color:#79C0FF">-L -X</span> <span style="color:#A5D6FF">POST &#x27;https://http-7272.twil.io/response?age=42&amp;firstName=Rick&#x27;</span> <span style="color:#79C0FF">\</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#79C0FF">-H</span> <span style="color:#A5D6FF">&#x27;Content-Type: application/json&#x27;</span> <span style="color:#79C0FF">\</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#79C0FF">--data-raw</span> <span style="color:#A5D6FF">&#x27;{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#A5D6FF">&quot;color&quot;: &quot;orange&quot;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#A5D6FF">}&#x27;</span></div></div></div></div></pre></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">the Function of the receiving end will then have access to an <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> object with these contents:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R4pla7slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:Rqcspla7slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="json" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;firstName&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Rick&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;age&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;42&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;color&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;orange&quot;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;request&quot;</span><span style="color:#C9D1D9">: {</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;headers&quot;</span><span style="color:#C9D1D9">: {</span> <span style="color:#FFA198;font-style:italic">...</span> <span style="color:#C9D1D9">},</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#7EE787">&quot;cookies&quot;</span><span style="color:#C9D1D9">: {</span> <span style="color:#FFA198;font-style:italic">...</span> <span style="color:#C9D1D9">}</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">}</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span></div></div></div></div></pre></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-rj5eb"><style data-emotion="css 1tn0jga">.css-1tn0jga{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:1.5rem;border-left-style:solid;border-left-width:2px;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-column-gap:1rem;column-gap:1rem;background-color:rgb(249, 249, 250);color:rgb(141, 49, 24);border-color:rgb(255, 179, 122);}</style><div data-paste-element="CALLOUT" data-paste-core-version="20.7.0" class="css-1tn0jga"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css 5ybmgr">.css-5ybmgr{box-sizing:border-box;line-height:0;display:block;color:rgb(195, 83, 35);width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-5ybmgr"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="WarningIcon-:Rplb7slaatasm:"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M17.798 14.791L11.316 3.744c-.582-.992-2.05-.992-2.632 0L2.202 14.79C1.625 15.776 2.354 17 3.518 17h12.964c1.164 0 1.893-1.224 1.316-2.209zM9.99 8h.02c.611.007 1.073.592.978 1.244l-.428 2.238c-.04.296-.278.518-.557.518h-.006c-.279 0-.516-.222-.557-.518l-.428-2.238C8.917 8.592 9.386 8 9.99 8zm.01 7a1 1 0 100-2 1 1 0 000 2z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">(warning)</span></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="20.6.0" class="css-kevsq9">Warning</h2><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">In the case of a <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">POST</code> request, query parameters and any JSON in the body of the request will be merged into the same object. If a property such as <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">age</code> is defined in both parts of the request, the value defined in the JSON body takes precedence and will overwrite the initial value from the query parameters in <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code>.</p></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-rj5eb"><div data-paste-element="CALLOUT" data-paste-core-version="20.7.0" class="css-1v816ix"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-1cst9vu"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="NeutralIcon-:Rplc7slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 7c-.26.01-.528.08-.707.24-.178.158-.292.355-.292.575v3.37c0 .21.11.428.292.577.173.14.457.247.707.237.26-.008.528-.078.707-.237.178-.16.292-.355.292-.577v-3.37a.766.766 0 00-.292-.575A1.14 1.14 0 0010 9zm0-3l-.266.036c-.17.047-.318.131-.441.253l-.156.198A.958.958 0 009 6.98v.04a.728.728 0 00.086.378c.04.121.108.227.206.315.09.094.197.163.321.202.12.06.248.09.386.084l.266-.035c.17-.047.318-.131.441-.253l.156-.198A.958.958 0 0011 7.02v-.04a.728.728 0 00-.086-.378.721.721 0 00-.206-.315.757.757 0 00-.321-.202.767.767 0 00-.386-.084z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">(information)</span></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="20.6.0" class="css-kevsq9">Info</h2><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">You might have noticed that <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> also contains a <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">request</code> object with <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">headers</code> and <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">cookies</code> that aren&#x27;t explicitly part of the request(s). To learn more about this aspect of <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> and how you can leverage request headers and cookies, refer to the <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/headers-and-cookies/access" title="accessing headers and cookies" class="css-lpeit6">accessing headers and cookies</a> documentation.</p></div></div></div></div></section> <section id="parameters-from-the-run-function-widget-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="parameters-from-the-run-function-widget" class="css-yftbgj">Parameters from the Run Function Widget</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#parameters-from-the-run-function-widget" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj98claatasm:"><title id="LinkIcon-:R1aj98claatasm:">parameters-from-the-run-function-widget page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal98claatasm:"><title id="ThumbsUpIcon-:R9jal98claatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal98claatasm:"><title id="ThumbsDownIcon-:R9lal98claatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Similar to a direct HTTP request, a Run Function widget is invoking a Function, that Function&#x27;s <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code> will be populated by any arguments specified in the configuration of that particular Run Function widget.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Refer to the Use the Run Function widget in Studio example to see what this looks like in practice when combining Functions and Studio Flows.</p></section> <section id="callback-function-section-indexable"><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="callback-function" class="css-16k5vxt">Callback Function</h2><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#callback-function" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj98slaatasm:"><title id="LinkIcon-:R1aj98slaatasm:">callback-function page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal98slaatasm:"><title id="ThumbsUpIcon-:R9jal98slaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal98slaatasm:"><title id="ThumbsDownIcon-:R9lal98slaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">When you have finished processing your request, you need to invoke the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> function to emit a response and signal that your Function has completed its execution. The <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> method will automatically determine the data type of your response and serialize the output appropriately.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">You <strong>must</strong> invoke the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> method when your Function is done processing. Failure to invoke <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> will cause your Function to continue running up to the 10-second execution time limit. When your Function reaches the execution time limit, it will be terminated, and a 504 Gateway timeout error will be returned to the client.</p></section> <section id="callback-and-asynchronous-limitations-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="callback-and-asynchronous-limitations" class="css-yftbgj">Callback and Asynchronous Limitations</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#callback-and-asynchronous-limitations" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj99claatasm:"><title id="LinkIcon-:R1aj99claatasm:">callback-and-asynchronous-limitations page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal99claatasm:"><title id="ThumbsUpIcon-:R9jal99claatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal99claatasm:"><title id="ThumbsDownIcon-:R9lal99claatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">It is important to note that when the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> function is invoked, it will terminate all execution of your Function. This includes any asynchronous processes you may have kicked off during the execution of your <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">handler</code> method.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">For this reason, if you are using libraries that are natively asynchronous and/or operate using <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise" rel="noreferrer noopener" target="_blank" title="Promises" class="css-lpeit6"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Promises<span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:R1ahb9claatasm:"><title id="LinkExternalIcon-:R1ahb9claatasm:">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a>, you must properly handle this asynchronous behavior. Structure your code to call <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> within the correct callback methods, <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">.then</code> chains, or after <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">await</code> in <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">async</code> functions.</p></section> <section id="complete-execution-with-asynchronous-http-request-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="complete-execution-with-asynchronous-http-request" class="css-3y2hwy">Complete Execution with Asynchronous HTTP Request</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#complete-execution-with-asynchronous-http-request" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R599slaatasm:"><title id="LinkIcon-:R599slaatasm:">complete-execution-with-asynchronous-http-request page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to appropriately use callback() with an asynchronous HTTP request</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16db9slaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76db9slaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Fetch the already initialized Twilio REST client</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">client</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">context.</span><span style="color:#D2A8FF">getTwilioClient</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Determine message details from the incoming event, with fallback values</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">from</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.From</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;+15095550100&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">to</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.To</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;+15105550101&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">body</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.Body</span> <span style="color:#FF7B72">||</span> <span style="color:#A5D6FF">&#x27;Ahoy, World!&#x27;</span><span style="color:#C9D1D9">;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">client.messages</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">create</span><span style="color:#C9D1D9">({ to, from, body })</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">then</span><span style="color:#C9D1D9">((</span><span style="color:#FFA657">result</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Created message using callback&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(result.sid);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Callback is placed inside the successful response of the request</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">})</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">catch</span><span style="color:#C9D1D9">((</span><span style="color:#FFA657">error</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">error</span><span style="color:#C9D1D9">(error);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Callback is also used in the catch handler to end execution on errors</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(error);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">22</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">});</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">23</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">24</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// If you were to place the callback() function here, instead, then the process would</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">25</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// terminate before your API request to create a message could complete.</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">26</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="callback-arguments-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="callback-arguments" class="css-yftbgj">Callback Arguments</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#callback-arguments" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9aclaatasm:"><title id="LinkIcon-:R1aj9aclaatasm:">callback-arguments page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9aclaatasm:"><title id="ThumbsUpIcon-:R9jal9aclaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9aclaatasm:"><title id="ThumbsDownIcon-:R9lal9aclaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-161rs34"><div data-paste-element="TABLE_WRAPPER" data-paste-core-version="20.7.0" class="css-1pev1tl"><table data-paste-element="TABLE" data-paste-core-version="20.7.0" class="css-1yrg7uf"><thead data-paste-element="THEAD" data-paste-core-version="20.7.0" class="css-c08gur"><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Argument</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Type</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Description</th></tr></thead><tbody data-paste-element="TBODY" data-paste-core-version="20.7.0" class="css-1u05hs8"><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">error</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">string|null</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Error indicating what problem was encountered during execution. Defining this value (as anything but <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">null</code> or <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">undefined</code>) will result in the client receiving a HTTP 500 response with the provided payload.</td></tr><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">response</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">string|object|null</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Successful response generated by the Function. Providing this argument will result in the client receiving a HTTP 200 response containing the provided value.</td></tr></tbody></table></div></div></section> <section id="how-do-i-return-an-error-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="how-do-i-return-an-error" class="css-yftbgj">How do I return an error?</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#how-do-i-return-an-error" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9aslaatasm:"><title id="LinkIcon-:R1aj9aslaatasm:">how-do-i-return-an-error page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9aslaatasm:"><title id="ThumbsUpIcon-:R9jal9aslaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9aslaatasm:"><title id="ThumbsDownIcon-:R9lal9aslaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">If you have encountered an exception in your code or otherwise want to indicate an error state, invoke the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> method with the error object or intended message as a single parameter:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1d8ad8q"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1gqdom6"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbaslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbaslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1f9wiu0"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div><span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(error);</span></div></div></pre></div></div></div></div></section> <section id="how-do-i-return-a-successful-response-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="how-do-i-return-a-successful-response" class="css-yftbgj">How do I return a successful response?</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#how-do-i-return-a-successful-response" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R2l6hbclaatasm:"><title id="LinkIcon-:R2l6hbclaatasm:">how-do-i-return-a-successful-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:Rj6lahbclaatasm:"><title id="ThumbsUpIcon-:Rj6lahbclaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:Rjalahbclaatasm:"><title id="ThumbsDownIcon-:Rjalahbclaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">To signal success and return a value, pass a falsy value such as <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">null</code> or <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">undefined</code> as the first parameter to <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code>, and your intended response as the second parameter:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1d8ad8q"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1gqdom6"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R2cqjbclaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:Rd6ecqjbclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1f9wiu0"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div><span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span></div></div></pre></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-rj5eb"><div data-paste-element="CALLOUT" data-paste-core-version="20.7.0" class="css-1v816ix"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-1cst9vu"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="NeutralIcon-:Rcqkbclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 7c-.26.01-.528.08-.707.24-.178.158-.292.355-.292.575v3.37c0 .21.11.428.292.577.173.14.457.247.707.237.26-.008.528-.078.707-.237.178-.16.292-.355.292-.577v-3.37a.766.766 0 00-.292-.575A1.14 1.14 0 0010 9zm0-3l-.266.036c-.17.047-.318.131-.441.253l-.156.198A.958.958 0 009 6.98v.04a.728.728 0 00.086.378c.04.121.108.227.206.315.09.094.197.163.321.202.12.06.248.09.386.084l.266-.035c.17-.047.318-.131.441-.253l.156-.198A.958.958 0 0011 7.02v-.04a.728.728 0 00-.086-.378.721.721 0 00-.206-.315.757.757 0 00-.321-.202.767.767 0 00-.386-.084z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">(information)</span></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="20.6.0" class="css-kevsq9">Info</h2><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Please note that all samples demonstrate using the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">return</code> keyword before calling <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code>. This is to prevent subsequent code from unintentionally running before <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">handler</code> is terminated, or from calling <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> multiple times, and is considered a best practice when working with Functions.</p></div></div></div></div></section> <section id="return-an-error-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="return-an-error-response" class="css-3y2hwy">Return an Error Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#return-an-error-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59bslaatasm:"><title id="LinkIcon-:R59bslaatasm:">return-an-error-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to return an error message with HTTP 500 Error</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbbslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbbslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Providing a single string or an Error object will result in a 500 Error</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Something went very, very wrong.&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="return-a-simple-successful-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="return-a-simple-successful-response" class="css-3y2hwy">Return a Simple Successful Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#return-a-simple-successful-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59cclaatasm:"><title id="LinkIcon-:R59cclaatasm:">return-a-simple-successful-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to return an empty HTTP 200 OK</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbcclaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbcclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Providing neither error nor response will result in a 200 OK</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="return-a-successful-plaintext-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="return-a-successful-plaintext-response" class="css-3y2hwy">Return a Successful Plaintext Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#return-a-successful-plaintext-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59cslaatasm:"><title id="LinkIcon-:R59cslaatasm:">return-a-successful-plaintext-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to return plaintext with HTTP 200 OK</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbcslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbcslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Providing a string will result in a 200 OK</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span> <span style="color:#A5D6FF">&#x27;This is fine&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="return-a-successful-json-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="return-a-successful-json-response" class="css-3y2hwy">Return a Successful JSON Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#return-a-successful-json-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59dclaatasm:"><title id="LinkIcon-:R59dclaatasm:">return-a-successful-json-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of how to return JSON in HTTP 200 OK</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbdclaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbdclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Construct an object in any way</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">{ result:</span> <span style="color:#A5D6FF">&#x27;winner winner!&#x27;</span> <span style="color:#C9D1D9">};</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// A JavaScript object as a response will be serialized to JSON and returned</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// with the Content-Type header set to &quot;application/json&quot; automatically</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="how-do-i-return-twiml-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="how-do-i-return-twiml" class="css-yftbgj">How do I return TwiML?</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#how-do-i-return-twiml" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9dslaatasm:"><title id="LinkIcon-:R1aj9dslaatasm:">how-do-i-return-twiml page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9dslaatasm:"><title id="ThumbsUpIcon-:R9jal9dslaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9dslaatasm:"><title id="ThumbsDownIcon-:R9lal9dslaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">In addition to the standard response types, Functions has built-in support to allow you to quickly generate and return TwiML for your application&#x27;s needs.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">This is such a common use case that <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> directly accepts valid TwiML objects, such as <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">MessagingResponse</code> and <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">VoiceResponse</code>, as the second argument. If you return TwiML in this way, the environment will automatically convert your response to XML without any extra work required on your part. (Such as stringifying the TwiML and specifying a response content type)</p></section> <section id="return-a-static-messaging-response-to-incoming-text-messages-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="return-a-static-messaging-response-to-incoming-text-messages" class="css-3y2hwy">Return a static Messaging response to incoming text messages</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#return-a-static-messaging-response-to-incoming-text-messages" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59eclaatasm:"><title id="LinkIcon-:R59eclaatasm:">return-a-static-messaging-response-to-incoming-text-messages page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16daeclaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76daeclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Create a new messaging response object</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">twiml</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.twiml.</span><span style="color:#D2A8FF">MessagingResponse</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Use any of the Node.js SDK methods, such as `message`, to compose a response</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">twiml.</span><span style="color:#D2A8FF">message</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Hello, World!&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Return the TwiML as the second argument to `callback`</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// This will render the response as XML in reply to the webhook request</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, twiml);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="return-a-voice-response-that-includes-say-and-play-verbs-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="return-a-voice-response-that-includes-say-and-play-verbs" class="css-3y2hwy">Return a Voice response that includes Say and Play verbs</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#return-a-voice-response-that-includes-say-and-play-verbs" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59eslaatasm:"><title id="LinkIcon-:R59eslaatasm:">return-a-voice-response-that-includes-say-and-play-verbs page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16daeslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76daeslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Create a new voice response object</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">twiml</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.twiml.</span><span style="color:#D2A8FF">VoiceResponse</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Webhook information is accessible as properties of the `event` object</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">city</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.FromCity;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">number</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">event.From;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// You can optionally edit the voice used, template variables into your</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// response, play recorded audio, and more</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">twiml.</span><span style="color:#D2A8FF">say</span><span style="color:#C9D1D9">({ voice:</span> <span style="color:#A5D6FF">&#x27;alice&#x27;</span> <span style="color:#C9D1D9">},</span> <span style="color:#A5D6FF">`Never gonna give you up, ${</span><span style="color:#C9D1D9">city</span> <span style="color:#FF7B72">||</span> <span style="color:#C9D1D9">number</span><span style="color:#A5D6FF">}`</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">twiml.</span><span style="color:#D2A8FF">play</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;https://demo.twilio.com/docs/classic.mp3&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Return the TwiML as the second argument to `callback`</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// This will render the response as XML in reply to the webhook request</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, twiml);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="global-classes-section-indexable"><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="global-classes" class="css-16k5vxt">Global classes</h2><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#global-classes" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9fclaatasm:"><title id="LinkIcon-:R1aj9fclaatasm:">global-classes page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9fclaatasm:"><title id="ThumbsUpIcon-:R9jal9fclaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9fclaatasm:"><title id="ThumbsDownIcon-:R9lal9fclaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">In addition to the values and helpers available through the <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">context</code>, <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">event</code>, and <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">callback</code> parameters, you have access to some globally-scoped helper classes that you can access without needing to import any new <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/dependencies" title="Dependencies" class="css-lpeit6">Dependencies</a>.</p></section> <section id="twilio-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="twilio" class="css-yftbgj">Twilio</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#twilio" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9fslaatasm:"><title id="LinkIcon-:R1aj9fslaatasm:">twilio page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9fslaatasm:"><title id="ThumbsUpIcon-:R9jal9fslaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9fslaatasm:"><title id="ThumbsDownIcon-:R9lal9fslaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">Twilio</code> class is accessible at any time. This is commonly used to initialize TwiML or <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/iam/access-tokens" title="Access Tokens" class="css-lpeit6">Access Tokens</a> for your Function responses. For example:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbfslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbfslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#8B949E">// Initialize TwiML without needing to import Twilio</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.twiml.</span><span style="color:#D2A8FF">MessagingResponse</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#8B949E">// Similarly for other utilities, such as Access Tokens</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">AccessToken</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">Twilio.jwt.AccessToken;</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">SyncGrant</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">AccessToken.SyncGrant;</span></div></div></div></div></pre></div></div></div></div></section> <section id="runtime-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="runtime" class="css-yftbgj">Runtime</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#runtime" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9gclaatasm:"><title id="LinkIcon-:R1aj9gclaatasm:">runtime page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9gclaatasm:"><title id="ThumbsUpIcon-:R9jal9gclaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9gclaatasm:"><title id="ThumbsDownIcon-:R9lal9gclaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/client" title="Runtime Client" class="css-lpeit6">Runtime Client</a> is accessible via <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">Runtime</code>, and exposes helper methods for accessing private Assets, other Functions, and the <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/sync" title="Sync" class="css-lpeit6">Sync</a> client. For example:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbgclaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbgclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">text</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">Runtime.</span><span style="color:#D2A8FF">getAssets</span><span style="color:#C9D1D9">()[</span><span style="color:#A5D6FF">&#x27;/my-file.txt&#x27;</span><span style="color:#C9D1D9">].</span><span style="color:#D2A8FF">open</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Your file contents: &#x27;</span> <span style="color:#FF7B72">+</span> <span style="color:#C9D1D9">text);</span></div></div></div></div></pre></div></div></div></div></section> <section id="constructing-a-response-section-indexable"><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="constructing-a-response" class="css-16k5vxt">Constructing a Response</h2><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#constructing-a-response" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R2l6hgslaatasm:"><title id="LinkIcon-:R2l6hgslaatasm:">constructing-a-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:Rj6lahgslaatasm:"><title id="ThumbsUpIcon-:Rj6lahgslaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:Rjalahgslaatasm:"><title id="ThumbsDownIcon-:Rjalahgslaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">In some instances, your Function may need greater control over the response it is going to emit. For those instances, you can use the Twilio Response object that is available in the global scope of your Function by default. No need to import <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/functions/invocation#twilio" title="Twilio" class="css-lpeit6">Twilio</a> yourself!</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">By using the Twilio Response object, you will be able to specify the status code, headers, and body of your response. You can begin constructing a custom response by creating a new Twilio Response object, like so:</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R2cqkgslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:Rd6ecqkgslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#8B949E">// No need to import Twilio; it is globally available in Functions</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.</span><span style="color:#D2A8FF">Response</span><span style="color:#C9D1D9">();</span></div></div></div></div></pre></div></div></div></div></section> <section id="twilio-response-methods-section-indexable"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="twilio-response-methods" class="css-yftbgj">Twilio Response Methods</h3><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#twilio-response-methods" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9hclaatasm:"><title id="LinkIcon-:R1aj9hclaatasm:">twilio-response-methods page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9hclaatasm:"><title id="ThumbsUpIcon-:R9jal9hclaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9hclaatasm:"><title id="ThumbsDownIcon-:R9lal9hclaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-161rs34"><div data-paste-element="TABLE_WRAPPER" data-paste-core-version="20.7.0" class="css-1pev1tl"><table data-paste-element="TABLE" data-paste-core-version="20.7.0" class="css-1yrg7uf"><thead data-paste-element="THEAD" data-paste-core-version="20.7.0" class="css-c08gur"><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Method</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Return Type</th><th data-paste-element="TH" data-paste-core-version="20.7.0" class="css-kczchh">Description</th></tr></thead><tbody data-paste-element="TBODY" data-paste-core-version="20.7.0" class="css-1u05hs8"><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">setStatusCode(int)</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">self</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Sets the status code in the HTTP response</td></tr><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">setBody(mixed)</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">self</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Sets the body of the HTTP response. Takes either an object or string. When setting the body to anything other than text, make sure to set the corresponding <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">Content-Type</code> header with <code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">appendHeader()</code></td></tr><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">appendHeader(string, string)</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">self</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Adds a header to the HTTP response. The first argument specifies the header name and the second argument the header value</td></tr><tr data-paste-element="TR" data-paste-core-version="20.7.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">setHeaders(object)</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="20.7.0" class="css-1kwd7zr">self</code></td><td data-paste-element="TD" data-paste-core-version="20.7.0" class="css-4rjmal">Sets all of the headers for the HTTP response. Takes an object mapping the names of the headers to their respective values</td></tr></tbody></table></div></div></section> <section id="set-a-status-code-in-a-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="set-a-status-code-in-a-response" class="css-3y2hwy">Set a Status Code in a Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#set-a-status-code-in-a-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59hslaatasm:"><title id="LinkIcon-:R59hslaatasm:">set-a-status-code-in-a-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of setting a Status Code using Twilio Response</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbhslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbhslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// No need to import Twilio; it is globally available in Functions</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.</span><span style="color:#D2A8FF">Response</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the status code to 204 Not Content</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">response.</span><span style="color:#D2A8FF">setStatusCode</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">204</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-519pyc">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="build-a-plaintext-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="build-a-plaintext-response" class="css-3y2hwy">Build a Plaintext Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#build-a-plaintext-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59iclaatasm:"><title id="LinkIcon-:R59iclaatasm:">build-a-plaintext-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of building a plaintext response with Twilio Response</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbiclaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbiclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// No need to import Twilio; it is globally available in Functions</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.</span><span style="color:#D2A8FF">Response</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">response</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the status code to 200 OK</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">setStatusCode</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">200</span><span style="color:#C9D1D9">)</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the response body</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">setBody</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;This is fine&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="building-a-json-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="building-a-json-response" class="css-3y2hwy">Building a JSON Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#building-a-json-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59islaatasm:"><title id="LinkIcon-:R59islaatasm:">building-a-json-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of building a JSON response with Twilio Response</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbislaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbislaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// No need to import Twilio; it is globally available in Functions</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.</span><span style="color:#D2A8FF">Response</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">response</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the status code to 200 OK</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">setStatusCode</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">200</span><span style="color:#C9D1D9">)</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the Content-Type Header</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">appendHeader</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Content-Type&#x27;</span><span style="color:#C9D1D9">,</span> <span style="color:#A5D6FF">&#x27;application/json&#x27;</span><span style="color:#C9D1D9">)</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the response body</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">setBody</span><span style="color:#C9D1D9">({</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">everything:</span> <span style="color:#A5D6FF">&#x27;is alright&#x27;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">});</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="set-an-http-header-in-a-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="set-an-http-header-in-a-response" class="css-3y2hwy">Set an HTTP Header in a Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#set-an-http-header-in-a-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59jclaatasm:"><title id="LinkIcon-:R59jclaatasm:">set-an-http-header-in-a-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of setting an header using Twilio Response</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbjclaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbjclaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// No need to import Twilio; it is globally available in Functions</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.</span><span style="color:#D2A8FF">Response</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">response</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the status code to 301 Redirect</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">setStatusCode</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">301</span><span style="color:#C9D1D9">)</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set the Location header for redirect</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">appendHeader</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Location&#x27;</span><span style="color:#C9D1D9">,</span> <span style="color:#A5D6FF">&#x27;https://twilio.com&#x27;</span><span style="color:#C9D1D9">);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="set-multiple-http-headers-in-a-response-section"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="set-multiple-http-headers-in-a-response" class="css-3y2hwy">Set Multiple HTTP Headers in a Response</h4><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#set-multiple-http-headers-in-a-response" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R59jslaatasm:"><title id="LinkIcon-:R59jslaatasm:">set-multiple-http-headers-in-a-response page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">Example of setting multiple headers using Twilio Response</p><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="20.7.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="20.7.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="20.7.0" type="button" tabindex="0" aria-describedby=":R16dbjslaatasm:" aria-busy="false" class="css-11aawc9"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-:R6j76dbjslaatasm:"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="20.7.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="20.7.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// No need to import Twilio; it is globally available in Functions</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">response</span> <span style="color:#FF7B72">= new</span> <span style="color:#C9D1D9">Twilio.</span><span style="color:#D2A8FF">Response</span><span style="color:#C9D1D9">();</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Build a mapping of headers as a way to set many with one command</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">headers</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">{</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#A5D6FF">&#x27;Access-Control-Allow-Origin&#x27;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&#x27;example.com&#x27;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#A5D6FF">&#x27;Access-Control-Allow-Methods&#x27;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&#x27;GET,PUT,POST,DELETE,OPTIONS&#x27;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#A5D6FF">&#x27;Access-Control-Allow-Headers&#x27;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&#x27;Content-Type&#x27;</span><span style="color:#C9D1D9">,</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">};</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#8B949E">// Set headers in response</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#C9D1D9">response.</span><span style="color:#D2A8FF">setHeaders</span><span style="color:#C9D1D9">(headers);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div> <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">, response);</span> </div></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div></section> <section id="whats-next-section-indexable"><hr data-paste-element="SEPARATOR" data-paste-core-version="20.7.0" aria-orientation="horizontal" class="css-1y5brhz"/><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="20.6.0" id="whats-next" class="css-16k5vxt">What&#x27;s next?</h2><a data-paste-element="BOX" data-paste-core-version="20.7.0" href="#whats-next" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-:R1aj9kclaatasm:"><title id="LinkIcon-:R1aj9kclaatasm:">whats-next page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-:R9jal9kclaatasm:"><title id="ThumbsUpIcon-:R9jal9kclaatasm:">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="20.7.0" aria-pressed="false" type="button" aria-busy="false" class="css-1b15v5e"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-:R9lal9kclaatasm:"><title id="ThumbsDownIcon-:R9lal9kclaatasm:">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">By now, you should have a pretty good idea of what goes into writing a Function. (Although there are plenty of specifics and <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/quickstart" title="examples" class="css-lpeit6">examples</a> yet to learn)</p><p data-paste-element="PARAGRAPH" data-paste-core-version="20.6.0" class="css-tcah8o">The next important step in your journey is to <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="/docs/serverless/functions-assets/visibility" title="understand the concept of visibility" class="css-lpeit6">understand the concept of visibility</a>, and how it affects access to and use of your Functions (and Assets)!</p></section></div></div></div><style data-emotion="css n7gvag">.css-n7gvag{box-sizing:border-box;margin-top:2rem;margin-bottom:2rem;margin-left:1.75rem;margin-right:1.75rem;padding-top:4.75rem;position:relative;}@media screen and (min-width: 768px){.css-n7gvag{margin-top:2rem;margin-bottom:2rem;margin-left:1.75rem;margin-right:1.75rem;}}@media screen and (min-width: 1024px){.css-n7gvag{margin-top:3rem;margin-bottom:3rem;margin-left:2.25rem;margin-right:2.25rem;}}@media screen and (min-width: 1385px){.css-n7gvag{margin-left:2.75rem;margin-right:2.75rem;}}</style><footer data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-n7gvag"><style data-emotion="css pg6uce">.css-pg6uce{box-sizing:border-box;border-radius:4px;background-color:rgb(18, 28, 45);margin-top:0;padding-top:0;}@media screen and (min-width: 768px){.css-pg6uce{margin-top:0;padding-top:0;}}@media screen and (min-width: 1024px){.css-pg6uce{margin-top:0;padding-top:0;}}@media screen and (min-width: 1385px){.css-pg6uce{margin-top:0;padding-top:0;}}@media screen and (min-width: 1942px){.css-pg6uce{margin-top:4.75rem;padding-top:4.75rem;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-pg6uce"><style data-emotion="css wzkleb">.css-wzkleb{box-sizing:border-box;max-width:77rem;padding:2rem;margin-top:0.125rem;margin-left:auto;margin-right:auto;position:relative;}@media screen and (min-width: 768px){.css-wzkleb{padding:4.25rem;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-wzkleb"><style data-emotion="css 1xkeua1">.css-1xkeua1{box-sizing:border-box;display:none;right:0;position:absolute;}@media screen and (min-width: 768px){.css-1xkeua1{display:none;}}@media screen and (min-width: 1024px){.css-1xkeua1{display:none;}}@media screen and (min-width: 1385px){.css-1xkeua1{display:block;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1xkeua1"><img aria-hidden="true" role="img" alt="" loading="lazy" width="460" height="324" decoding="async" data-nimg="1" style="color:transparent" src="/_next/static/media/footer-min.eb6c3e3d.svg"/></div><style data-emotion="css 1bt0omd">.css-1bt0omd{box-sizing:border-box;position:relative;}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1bt0omd"><style data-emotion="css 1uxvx9z">.css-1uxvx9z{box-sizing:border-box;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:1.75rem;text-align:center;}@media screen and (min-width: 768px){.css-1uxvx9z{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;text-align:left;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1uxvx9z"><style data-emotion="css 1aljbmp">.css-1aljbmp{margin:0;padding:0;color:rgb(255, 255, 255);font-size:1.25rem;line-height:1.75rem;font-family:'TwilioSansDisplay','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:800;margin-top:0.75rem;}@media screen and (min-width: 768px){.css-1aljbmp{font-size:2rem;line-height:2.5rem;margin-top:0;}}</style><h2 data-paste-element="TEXT" data-paste-core-version="20.6.0" class="css-1aljbmp">Need some help?</h2></div><style data-emotion="css 1hxyz3w">.css-1hxyz3w{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;text-align:center;}@media screen and (min-width: 768px){.css-1hxyz3w{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;text-align:left;}}</style><nav data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1hxyz3w"><style data-emotion="css 1b5a60l">.css-1b5a60l{box-sizing:border-box;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1.25rem;margin-right:0;max-width:100%;}@media screen and (min-width: 768px){.css-1b5a60l{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-right:3rem;max-width:100%;}}@media screen and (min-width: 1024px){.css-1b5a60l{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}}@media screen and (min-width: 1385px){.css-1b5a60l{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;max-width:calc(100% - 28rem);}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1b5a60l"><style data-emotion="css w6f2uy">.css-w6f2uy{margin:0;padding:0;color:rgb(255, 255, 255);font-size:1rem;line-height:1.25rem;}</style><p data-paste-element="TEXT" data-paste-core-version="20.6.0" class="css-w6f2uy">We all do sometimes; code is hard. Get help now from our <style data-emotion="css 1az6u6g">.css-1az6u6g{box-sizing:border-box;color:rgb(255, 255, 255);font-size:inherit;font-weight:inherit;line-height:inherit;outline:none;-webkit-text-decoration:underline;text-decoration:underline;}.css-1az6u6g:active,.css-1az6u6g[data-active=true]{color:rgb(255, 255, 255);-webkit-text-decoration:none;text-decoration:none;}.css-1az6u6g:focus{box-shadow:0 0 0 1px #394762,0 0 0 3px #121c2d,0 0 0 4px #ffffff,0 0 0 6px rgba(255, 255, 255, 0.2);color:rgb(255, 255, 255);-webkit-text-decoration:underline;text-decoration:underline;border-radius:4px;}.css-1az6u6g:hover{color:rgb(255, 255, 255);-webkit-text-decoration:none;text-decoration:none;}</style><a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="https://help.twilio.com" rel="noreferrer noopener" target="_blank" title="support team" class="css-1az6u6g"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">support team<span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:Rl9ailaetasm:"><title id="LinkExternalIcon-:Rl9ailaetasm:">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a>, or lean on the wisdom of the crowd by visiting Twilio&#x27;s <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="https://stackoverflow.com/collectives/twilio" rel="noreferrer noopener" target="_blank" title="Stack Overflow Collective" class="css-1az6u6g"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Stack Overflow Collective<span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:Rlaailaetasm:"><title id="LinkExternalIcon-:Rlaailaetasm:">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a> or browsing the <a data-paste-element="ANCHOR" data-paste-core-version="20.7.0" href="https://stackoverflow.com/questions/tagged/twilio" rel="noreferrer noopener" target="_blank" title="Twilio tag" class="css-1az6u6g"><span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-roynbj">Twilio tag<span data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="20.7.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-:Rlbailaetasm:"><title id="LinkExternalIcon-:Rlbailaetasm:">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a> on Stack Overflow.</p></div></nav><style data-emotion="css 1o3xt00">.css-1o3xt00{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-top:2.75rem;text-align:center;}@media screen and (min-width: 768px){.css-1o3xt00{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;text-align:left;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1o3xt00"><style data-emotion="css 2ch0jy">.css-2ch0jy{box-sizing:border-box;display:block;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}@media screen and (min-width: 768px){.css-2ch0jy{display:block;}}@media screen and (min-width: 1024px){.css-2ch0jy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div data-paste-element="STACK" data-paste-core-version="20.7.0" class="css-2ch0jy"><style data-emotion="css 1hsc1sb">.css-1hsc1sb{box-sizing:border-box;margin-right:0;margin-bottom:1.25rem;}@media screen and (min-width: 768px){.css-1hsc1sb{margin-right:0;margin-bottom:1.25rem;}}@media screen and (min-width: 1024px){.css-1hsc1sb{margin-right:1.25rem;margin-bottom:0;}}</style><div data-paste-element="STACK_CHILD" data-paste-core-version="20.7.0" class="css-1hsc1sb"><style data-emotion="css 6i08t">.css-6i08t{color:rgb(255, 255, 255);}</style><a class="css-6i08t" href="/en-us/legal/tos">Terms of service</a></div><div data-paste-element="STACK_CHILD" data-paste-core-version="20.7.0" class="css-1hsc1sb"><a class="css-6i08t" href="/en-us/legal/privacy">Privacy Policy</a></div><div data-paste-element="STACK_CHILD" data-paste-core-version="20.7.0" class="css-roynbj"><style data-emotion="css g9v2ra">.css-g9v2ra{margin:0;padding:0;color:rgb(255, 255, 255);font-size:0.875rem;line-height:1.25rem;}</style><p data-paste-element="TEXT" data-paste-core-version="20.6.0" class="css-g9v2ra">Copyright © 2025 Twilio Inc.</p></div></div></div><style data-emotion="css 1gyumqz">.css-1gyumqz{box-sizing:border-box;margin-top:2.75rem;text-align:center;}@media screen and (min-width: 768px){.css-1gyumqz{text-align:left;}}</style><div data-paste-element="BOX" data-paste-core-version="20.7.0" class="css-1gyumqz"><a href="https://twilio.com/" aria-label="Go to Twilio homepage"><span style="color:rgb(255, 255, 255);width:5.5rem;height:1.5rem;display:inline-block"><svg aria-hidden="true" aria-labelledby=":Rklaetasm:" height="100%" role="img" viewBox="0 0 88 24" width="100%"><title id=":Rklaetasm:">Twilio</title><path fill="currentColor" d="M11.52 9.04c0 1.36-1.12 2.48-2.48 2.48-1.36 0-2.48-1.12-2.48-2.48 0-1.36 1.12-2.48 2.48-2.48 1.36 0 2.48 1.12 2.48 2.48zm-2.48 3.44c-1.36 0-2.48 1.12-2.48 2.48 0 1.36 1.12 2.48 2.48 2.48 1.36 0 2.48-1.12 2.48-2.48 0-1.36-1.12-2.48-2.48-2.48zM24 12c0 6.64-5.36 12-12 12S0 18.64 0 12 5.36 0 12 0s12 5.36 12 12zm-3.2 0c0-4.88-3.92-8.8-8.8-8.8-4.88 0-8.8 3.92-8.8 8.8 0 4.88 3.92 8.8 8.8 8.8 4.88 0 8.8-3.92 8.8-8.8zm-5.84.48c-1.36 0-2.48 1.12-2.48 2.48 0 1.36 1.12 2.48 2.48 2.48 1.36 0 2.48-1.12 2.48-2.48 0-1.36-1.12-2.48-2.48-2.48zm0-5.92c-1.36 0-2.48 1.12-2.48 2.48 0 1.36 1.12 2.48 2.48 2.48 1.36 0 2.48-1.12 2.48-2.48 0-1.36-1.12-2.48-2.48-2.48zm41.28-1.84c.08 0 .16.08.24.16v2.56c0 .16-.16.24-.24.24H52c-.16 0-.24-.16-.24-.24V4.96c0-.16.16-.24.24-.24h4.24zm-.08 3.6H48c-.08 0-.24.08-.24.24l-1.04 4-.08.24-1.28-4.24c0-.08-.16-.24-.24-.24h-3.2c-.08 0-.24.08-.24.24l-1.2 4-.08.24-.08-.24-.48-2-.48-2c0-.08-.16-.24-.24-.24h-6.4V4.88c0-.08-.16-.24-.32-.16L28.4 6c-.16 0-.24.08-.24.24V8.4h-1.04c-.08 0-.24.08-.24.24v3.04c0 .08.08.24.24.24h1.04v3.76c0 2.64 1.44 3.84 4.08 3.84 1.12 0 2.16-.24 2.88-.64v-3.2c0-.16-.16-.24-.24-.16-.4.16-.8.24-1.12.24-.72 0-1.12-.32-1.12-1.12v-2.72h2.32c.08 0 .24-.08.24-.24V9.12l3.04 10.08c0 .08.16.24.24.24h3.36c.08 0 .24-.08.24-.24l1.44-4.48.72 2.32.64 2.16c0 .08.16.24.24.24h3.36c.08 0 .24-.08.24-.24l3.04-10.08V19.2c0 .08.08.24.24.24h4.08c.08 0 .24-.08.24-.24V8.56c0-.08-.08-.24-.16-.24zm5.36-3.6h-4.08c-.08 0-.24.08-.24.24v14.16c0 .08.08.24.24.24h4.08c.08 0 .24-.08.24-.24V4.88c0-.08-.08-.16-.24-.16zm5.44 0h-4.24c-.08 0-.24.08-.24.24v2.48c0 .08.08.24.24.24h4.24c.08 0 .24-.08.24-.24V4.88c0-.08-.08-.16-.24-.16zm-.08 3.6H62.8c-.08 0-.24.08-.24.24v10.48c0 .08.08.24.24.24h4.08c.08 0 .24-.08.24-.24V8.56c0-.08-.08-.24-.24-.24zm12.88 5.44c0 3.04-2.56 5.68-6.16 5.68-3.52 0-6.08-2.64-6.08-5.68 0-3.04 2.56-5.68 6.16-5.68 3.52 0 6.08 2.64 6.08 5.68zm-4.32.08c0-1.12-.8-2-1.76-1.92-1.04 0-1.76.88-1.76 1.92s.8 1.92 1.76 1.92c1.04 0 1.76-.88 1.76-1.92z"></path></svg></span></a></div></div></div></div></footer></div></div></div></div><div id="consent_blackbar"></div><div id="teconsent" style="position:fixed;bottom:0;right:0;z-index:30"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"source":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n section: \"section\",\n strong: \"strong\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock, Info, Warning} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n if (!Info) _missingMdxReference(\"Info\", true);\n if (!Warning) _missingMdxReference(\"Warning\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The Twilio Function runtime environment is lightweight by design to provide developers with all the flexibility they need. Read on to learn about how your code is executed, what variables and tools this environment provides, and ways you could create a valid response.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"During Function invocation, the following steps occur:\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Environment Bootstrap -\"\n }), \" The Twilio Function environment is bootstrapped, and any resources your Function code may rely on are quickly initialized.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Handler Execution\"\n }), \" \", _jsx(_components.strong, {\n children: \"-\"\n }), \" The Twilio Environment will then execute the \", _jsx(_components.code, {\n children: \"exports.handler\"\n }), \" method that your code defines, and provide the \", _jsx(_components.code, {\n children: \"context\"\n }), \", \", _jsx(_components.code, {\n children: \"event\"\n }), \", and \", _jsx(_components.code, {\n children: \"callback\"\n }), \" parameters, in addition to a selection of useful global utility methods.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Response Emitted\"\n }), \" \", _jsx(_components.strong, {\n children: \"-\"\n }), \" When your Twilio Function code has completed, your code must call the \", _jsx(_components.code, {\n children: \"callback()\"\n }), \" method in order to emit your response. After executing the \", _jsx(_components.code, {\n children: \"callback()\"\n }), \" method, your Twilio Function execution will be terminated. This includes any asynchronous processes that may still be executing.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"handler-method-section-indexable\",\n children: [_jsx(_components.h2, {\n id: \"handler-method\",\n children: \"Handler Method\"\n }), _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.code, {\n children: \"handler\"\n }), \" method is the interface between Twilio Functions and your application logic. You can think of the \", _jsx(_components.code, {\n children: \"handler\"\n }), \" method as the entry point to your application. This is somewhat analogous to a \", _jsx(_components.code, {\n children: \"main()\"\n }), \" function in Java or \", _jsx(_components.code, {\n children: \"__init__\"\n }), \" in Python.\"]\n }), _jsxs(_components.p, {\n children: [\"Twilio Functions will execute your \", _jsx(_components.code, {\n children: \"handler\"\n }), \" method when it is ready to hand off control of execution to your application logic. If your Function Code does not contain a \", _jsx(_components.code, {\n children: \"handler\"\n }), \" method, Twilio Functions will be unable to execute your logic and will emit an HTTP 500 error.\"]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"handler-arguments-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"handler-arguments\",\n children: \"Handler Arguments\"\n }), _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Argument\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Type\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Description\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"context\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"object\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Provides information about the current execution environment\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"event\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"object\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Contains the request parameters passed into your Twilio Function\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"callback\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"function\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Function used to complete execution and emit responses\"\n })]\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"handler-method-boilerplate-section\",\n children: [_jsx(_components.h4, {\n id: \"handler-method-boilerplate\",\n children: \"Handler Method Boilerplate\"\n }), _jsx(_components.p, {\n children: \"Twilio Function Handler Method Boilerplate\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Your application logic\\n \\n // To emit a response and stop execution, call the callback() method\\n return callback();\\n}\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Handler Method Boilerplate\\\" description=\\\"Twilio Function Handler Method Boilerplate\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Your application logic\\n \\n // To emit a response and stop execution, call the callback() method\\n return callback();\\n}\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Your application logic\", \"#8B949E\"], \"\\n \\n \", [\"// To emit a response and stop execution, call the callback() method\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"context-object-section-indexable\",\n children: [_jsx(_components.h2, {\n id: \"context-object\",\n children: \"Context Object\"\n }), _jsxs(_components.p, {\n children: [\"Twilio Functions provides the \", _jsx(_components.code, {\n children: \"context\"\n }), \" object as an interface between the current execution environment and the \", _jsx(_components.code, {\n children: \"handler\"\n }), \" method. The \", _jsx(_components.code, {\n children: \"context\"\n }), \" object provides access to helper methods, as well as your Environment Variables.\"]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"helper-methods-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"helper-methods\",\n children: \"Helper Methods\"\n }), _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.code, {\n children: \"context\"\n }), \" object provides helper methods that pre-initialize common utilities and clients that you might find useful when building your application. These helper methods extract all their required configuration from Environment Variables.\"]\n }), _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Method\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Type\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Description\"\n })]\n })\n }), _jsx(_components.tbody, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"getTwilioClient()\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Twilio REST Helper\"\n }), _jsxs(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: [\"If you have enabled the inclusion of your account credentials in your Function, this will return an initialized \", _jsx(_components.a, {\n href: \"https://github.com/twilio/twilio-node\",\n children: \"Twilio REST Helper Library\"\n }), \". If you have not included account credentials in your Function, calling this method will result in an error. If your code doesn't catch this error, it will result in an HTTP 500 response.\"]\n })]\n })\n })]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"use-built-in-twilio-rest-helper-to-send-an-sms-message-section\",\n children: [_jsx(_components.h4, {\n id: \"use-built-in-twilio-rest-helper-to-send-an-sms-message\",\n children: \"Use built-in Twilio REST Helper to send an SMS Message\"\n }), _jsx(_components.p, {\n children: \"Example of using built-in Twilio REST Helper\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Access the pre-initialized Twilio REST client\\n const twilioClient = context.getTwilioClient();\\n\\n // Determine message details from the incoming event, with fallback values\\n const from = event.From || '+15095550100';\\n const to = event.To || '+15105550101';\\n const body = event.Body || 'Ahoy, World!';\\n\\n twilioClient.messages\\n .create({ to, from, body })\\n .then((result) =\u003e {\\n console.log('Created message using callback');\\n console.log(result.sid);\\n return callback();\\n })\\n .catch((error) =\u003e {\\n console.error(error);\\n return callback(error);\\n });\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Use built-in Twilio REST Helper to send an SMS Message\\\" description=\\\"Example of using built-in Twilio REST Helper\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Access the pre-initialized Twilio REST client\\n const twilioClient = context.getTwilioClient();\\n\\n // Determine message details from the incoming event, with fallback values\\n const from = event.From || '+15095550100';\\n const to = event.To || '+15105550101';\\n const body = event.Body || 'Ahoy, World!';\\n\\n twilioClient.messages\\n .create({ to, from, body })\\n .then((result) =\u003e {\\n console.log('Created message using callback');\\n console.log(result.sid);\\n return callback();\\n })\\n .catch((error) =\u003e {\\n console.error(error);\\n return callback(error);\\n });\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Access the pre-initialized Twilio REST client\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"twilioClient\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"context.\", \"#C9D1D9\"], [\"getTwilioClient\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n \", [\"// Determine message details from the incoming event, with fallback values\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"from\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.From\", \"#C9D1D9\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'+15095550100'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"to\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.To\", \"#C9D1D9\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'+15105550101'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"body\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.Body\", \"#C9D1D9\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'Ahoy, World!'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n \", [\"twilioClient.messages\", \"#C9D1D9\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"({ to, from, body })\", \"#C9D1D9\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"then\", \"#D2A8FF\"], [\"((\", \"#C9D1D9\"], [\"result\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Created message using callback'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(result.sid);\", \"#C9D1D9\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n \", [\"})\", \"#C9D1D9\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"catch\", \"#D2A8FF\"], [\"((\", \"#C9D1D9\"], [\"error\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"console.\", \"#C9D1D9\"], [\"error\", \"#D2A8FF\"], [\"(error);\", \"#C9D1D9\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(error);\", \"#C9D1D9\"], \"\\n \", [\"});\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"environment-variables-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"environment-variables\",\n children: \"Environment Variables\"\n }), _jsx(_components.p, {\n children: \"We encourage developers to use Environment Variables to separate their code from configuration. Using Environment Variables ensures that your code is portable, and that simple configuration changes can be made instantly.\"\n }), _jsx(_components.p, {\n children: \"For a more in-depth explanation and examples, refer to the Environment Variables documentation.\"\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"retrieve-domain-from-default-environment-variables-section\",\n children: [_jsx(_components.h4, {\n id: \"retrieve-domain-from-default-environment-variables\",\n children: \"Retrieve Domain from Default Environment Variables\"\n }), _jsx(_components.p, {\n children: \"Example of how to access the Default Environment Variables\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Check to see if the Domain name is null\\n const domain = context.DOMAIN_NAME || 'No Domain available';\\n // Respond with the Domain hosting this Function\\n return callback(null, domain);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Retrieve Domain from Default Environment Variables\\\" description=\\\"Example of how to access the Default Environment Variables\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Check to see if the Domain name is null\\n const domain = context.DOMAIN_NAME || 'No Domain available';\\n // Respond with the Domain hosting this Function\\n return callback(null, domain);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Check to see if the Domain name is null\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"domain\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"context.\", \"#C9D1D9\"], [\"DOMAIN_NAME\", \"#79C0FF\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'No Domain available'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n \", [\"// Respond with the Domain hosting this Function\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", domain);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"retrieve-environment-variables-section\",\n children: [_jsx(_components.h4, {\n id: \"retrieve-environment-variables\",\n children: \"Retrieve Environment Variables\"\n }), _jsx(_components.p, {\n children: \"Example of how to access Environment Variables\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Get the primary and secondary phone numbers, if set\\n const primary = context.PRIMARY_PHONE_NUMBER || 'There is no primary number';\\n const secondary = context.SECONDARY_PHONE_NUMBER || 'There is no secondary number!';\\n\\n // Build our response object\\n const response = {\\n phone_numbers: {\\n primary,\\n backup: secondary,\\n },\\n };\\n\\n // Return the response object as JSON\\n return callback(null, response);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Retrieve Environment Variables\\\" description=\\\"Example of how to access Environment Variables\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Get the primary and secondary phone numbers, if set\\n const primary = context.PRIMARY_PHONE_NUMBER || 'There is no primary number';\\n const secondary = context.SECONDARY_PHONE_NUMBER || 'There is no secondary number!';\\n\\n // Build our response object\\n const response = {\\n phone_numbers: {\\n primary,\\n backup: secondary,\\n },\\n };\\n\\n // Return the response object as JSON\\n return callback(null, response);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Get the primary and secondary phone numbers, if set\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"primary\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"context.\", \"#C9D1D9\"], [\"PRIMARY_PHONE_NUMBER\", \"#79C0FF\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'There is no primary number'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"secondary\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"context.\", \"#C9D1D9\"], [\"SECONDARY_PHONE_NUMBER\", \"#79C0FF\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'There is no secondary number!'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n \", [\"// Build our response object\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"phone_numbers: {\", \"#C9D1D9\"], \"\\n \", [\"primary,\", \"#C9D1D9\"], \"\\n \", [\"backup: secondary,\", \"#C9D1D9\"], \"\\n \", [\"},\", \"#C9D1D9\"], \"\\n \", [\"};\", \"#C9D1D9\"], \"\\n\\n \", [\"// Return the response object as JSON\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"event-object-section-indexable\",\n children: [_jsx(_components.h2, {\n id: \"event-object\",\n children: \"Event Object\"\n }), _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.code, {\n children: \"event\"\n }), \" object contains the request parameters and headers being passed into your Function. Both \", _jsx(_components.code, {\n children: \"POST\"\n }), \" and \", _jsx(_components.code, {\n children: \"GET\"\n }), \" parameters will be collapsed into the same object. For \", _jsx(_components.code, {\n children: \"POST\"\n }), \" requests, you can pass either form encoded parameters or JSON documents; both will be collapsed into the \", _jsx(_components.code, {\n children: \"event\"\n }), \" object.\"]\n }), _jsxs(_components.p, {\n children: [\"The specific values that you'll be able to access on \", _jsx(_components.code, {\n children: \"event\"\n }), \" are dependent on what context your Function is being used in and what parameters it is receiving. We'll cover some common use cases and general scenarios below, so you can get the most out of \", _jsx(_components.code, {\n children: \"event\"\n }), \".\"]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"webhook-parameters-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"webhook-parameters\",\n children: \"Webhook parameters\"\n }), _jsxs(_components.p, {\n children: [\"If you have configured your Function to act as the webhook for an action, such as an incoming SMS or phone call, \", _jsx(_components.code, {\n children: \"event\"\n }), \" will contain a very specific set of values related to the phone number in question. These will be values such as \", _jsx(_components.code, {\n children: \"event.From\"\n }), \", which resolves to the E.164 formatted phone number as a string, \", _jsx(_components.code, {\n children: \"event.Body\"\n }), \", which returns the text message of an incoming SMS, and many more. For example, an incoming message will result in \", _jsx(_components.code, {\n children: \"event\"\n }), \" having this shape:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"{\\n \\\"ToCountry\\\": \\\"US\\\",\\n \\\"ToState\\\": \\\"CA\\\",\\n \\\"SmsMessageSid\\\": \\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"NumMedia\\\": \\\"0\\\",\\n \\\"ToCity\\\": \\\"BOULEVARD\\\",\\n \\\"FromZip\\\": \\\"\\\",\\n \\\"SmsSid\\\": \\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"FromState\\\": \\\"WA\\\",\\n \\\"SmsStatus\\\": \\\"received\\\",\\n \\\"FromCity\\\": \\\"\\\",\\n \\\"Body\\\": \\\"Ahoy!\\\",\\n \\\"FromCountry\\\": \\\"US\\\",\\n \\\"To\\\": \\\"+15555555555\\\",\\n \\\"ToZip\\\": \\\"91934\\\",\\n \\\"NumSegments\\\": \\\"1\\\",\\n \\\"MessageSid\\\": \\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"AccountSid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"From\\\": \\\"+14444444444\\\",\\n \\\"ApiVersion\\\": \\\"2010-04-01\\\",\\n \\\"request\\\": {\\n \\\"headers\\\": { ... },\\n \\\"cookies\\\": { ... }\\n },\\n}\",\n \"lang\": \"json\",\n \"meta\": \"\",\n \"code\": \"{\\n \\\"ToCountry\\\": \\\"US\\\",\\n \\\"ToState\\\": \\\"CA\\\",\\n \\\"SmsMessageSid\\\": \\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"NumMedia\\\": \\\"0\\\",\\n \\\"ToCity\\\": \\\"BOULEVARD\\\",\\n \\\"FromZip\\\": \\\"\\\",\\n \\\"SmsSid\\\": \\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"FromState\\\": \\\"WA\\\",\\n \\\"SmsStatus\\\": \\\"received\\\",\\n \\\"FromCity\\\": \\\"\\\",\\n \\\"Body\\\": \\\"Ahoy!\\\",\\n \\\"FromCountry\\\": \\\"US\\\",\\n \\\"To\\\": \\\"+15555555555\\\",\\n \\\"ToZip\\\": \\\"91934\\\",\\n \\\"NumSegments\\\": \\\"1\\\",\\n \\\"MessageSid\\\": \\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"AccountSid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n \\\"From\\\": \\\"+14444444444\\\",\\n \\\"ApiVersion\\\": \\\"2010-04-01\\\",\\n \\\"request\\\": {\\n \\\"headers\\\": { ... },\\n \\\"cookies\\\": { ... }\\n },\\n}\",\n \"tokens\": [[\"{\", \"#C9D1D9\"], \"\\n \", [\"\\\"ToCountry\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"US\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"ToState\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"CA\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"SmsMessageSid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"NumMedia\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"0\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"ToCity\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"BOULEVARD\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"FromZip\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"SmsSid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"FromState\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"WA\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"SmsStatus\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"received\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"FromCity\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"Body\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Ahoy!\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"FromCountry\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"US\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"To\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+15555555555\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"ToZip\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"91934\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"NumSegments\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"1\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"MessageSid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"AccountSid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"From\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+14444444444\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"ApiVersion\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"2010-04-01\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"request\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \"\\n \", [\"\\\"headers\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \" \", [\"...\", \"#FFA198\", {\n \"fontStyle\": \"italic\"\n }], \" \", [\"},\", \"#C9D1D9\"], \"\\n \", [\"\\\"cookies\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \" \", [\"...\", \"#FFA198\", {\n \"fontStyle\": \"italic\"\n }], \" \", [\"}\", \"#C9D1D9\"], \"\\n \", [\"},\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n }), _jsxs(_components.p, {\n children: [\"Refer to the dedicated \", _jsx(_components.a, {\n href: \"/docs/messaging/guides/webhook-request#parameters-in-twilios-request-to-your-application\",\n children: \"Messaging\"\n }), \" and \", _jsx(_components.a, {\n href: \"/docs/voice/twiml#request-parameters\",\n children: \"Voice\"\n }), \" Webhook documentation to learn the full list of properties which you can leverage in your Functions.\"]\n }), _jsx(Info, {\n children: _jsxs(_components.p, {\n children: [\"Webhook properties are always in \", _jsx(_components.a, {\n href: \"https://en.wikipedia.org/wiki/Camel_case#:~:text=PascalCase%20for%20upper%20camel%20case\",\n children: \"PascalCase\"\n }), \"; check to make sure that you have capitalized the first letter of commonly used variables, such as \", _jsx(_components.code, {\n children: \"From\"\n }), \".\"]\n })\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"access-webhook-values-from-event-section\",\n children: [_jsx(_components.h4, {\n id: \"access-webhook-values-from-event\",\n children: \"Access webhook values from event\"\n }), _jsx(_components.p, {\n children: \"Example of how to access webhook values by name from the event object in a Function\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"// !mark(6)\\nexports.handler = (context, event, callback) =\u003e {\\n // Prepare a new messaging response object; no need to import Twilio\\n const twiml = new Twilio.twiml.MessagingResponse();\\n // Access incoming text information like the from number and contents off of `event`\\n // Access environment variables and other runtime data from `context`\\n twiml.message({ to: context.MY_NUMBER }, `${event.From}: ${event.Body}`);\\n // Remember to return the TwiML as the second argument to `callback`\\n return callback(null, twiml);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Access webhook values from event\\\" description=\\\"Example of how to access webhook values by name from the event object in a Function\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Prepare a new messaging response object; no need to import Twilio\\n const twiml = new Twilio.twiml.MessagingResponse();\\n // Access incoming text information like the from number and contents off of `event`\\n // Access environment variables and other runtime data from `context`\\n twiml.message({ to: context.MY_NUMBER }, `${event.From}: ${event.Body}`);\\n // Remember to return the TwiML as the second argument to `callback`\\n return callback(null, twiml);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Prepare a new messaging response object; no need to import Twilio\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"twiml\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.twiml.\", \"#C9D1D9\"], [\"MessagingResponse\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n \", [\"// Access incoming text information like the from number and contents off of `event`\", \"#8B949E\"], \"\\n \", [\"// Access environment variables and other runtime data from `context`\", \"#8B949E\"], \"\\n \", [\"twiml.\", \"#C9D1D9\"], [\"message\", \"#D2A8FF\"], [\"({ to: context.\", \"#C9D1D9\"], [\"MY_NUMBER\", \"#79C0FF\"], \" \", [\"},\", \"#C9D1D9\"], \" \", [\"`${\", \"#A5D6FF\"], [\"event\", \"#C9D1D9\"], [\".\", \"#A5D6FF\"], [\"From\", \"#C9D1D9\"], [\"}: ${\", \"#A5D6FF\"], [\"event\", \"#C9D1D9\"], [\".\", \"#A5D6FF\"], [\"Body\", \"#C9D1D9\"], [\"}`\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n \", [\"// Remember to return the TwiML as the second argument to `callback`\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", twiml);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [{\n \"name\": \"mark\",\n \"query\": \"\",\n \"fromLineNumber\": 6,\n \"toLineNumber\": 6\n }],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"parameters-from-http-requests-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"parameters-from-http-requests\",\n children: \"Parameters from HTTP requests\"\n }), _jsxs(_components.p, {\n children: [\"If your Function is being executed in response to an incoming HTTP request, then the contents of \", _jsx(_components.code, {\n children: \"event\"\n }), \" will directly correspond to the request's query parameters and request body (if any).\"]\n }), _jsxs(_components.p, {\n children: [\"For example, given a Function with the URL of \", _jsx(_components.code, {\n children: \"http-7272.twil.io/response\"\n }), \" and this request:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"curl -X GET 'https://http-7272.twil.io/response?age=42\u0026firstName=Rick'\",\n \"lang\": \"shellscript\",\n \"meta\": \"\",\n \"code\": \"curl -X GET 'https://http-7272.twil.io/response?age=42\u0026firstName=Rick'\",\n \"tokens\": [[\"curl\", \"#FFA657\"], \" \", [\"-X\", \"#79C0FF\"], \" \", [\"GET 'https://http-7272.twil.io/response?age=42\u0026firstName=Rick'\", \"#A5D6FF\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n }), _jsx(_components.p, {\n children: \"The resulting event object will be:\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"{\\n \\\"firstName\\\": \\\"Rick\\\",\\n \\\"age\\\": \\\"42\\\",\\n \\\"request\\\": {\\n \\\"headers\\\": { ... },\\n \\\"cookies\\\": { ... }\\n }\\n}\",\n \"lang\": \"json\",\n \"meta\": \"\",\n \"code\": \"{\\n \\\"firstName\\\": \\\"Rick\\\",\\n \\\"age\\\": \\\"42\\\",\\n \\\"request\\\": {\\n \\\"headers\\\": { ... },\\n \\\"cookies\\\": { ... }\\n }\\n}\",\n \"tokens\": [[\"{\", \"#C9D1D9\"], \"\\n \", [\"\\\"firstName\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Rick\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"age\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"42\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"request\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \"\\n \", [\"\\\"headers\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \" \", [\"...\", \"#FFA198\", {\n \"fontStyle\": \"italic\"\n }], \" \", [\"},\", \"#C9D1D9\"], \"\\n \", [\"\\\"cookies\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \" \", [\"...\", \"#FFA198\", {\n \"fontStyle\": \"italic\"\n }], \" \", [\"}\", \"#C9D1D9\"], \"\\n \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n }), _jsxs(_components.p, {\n children: [\"Similarly, given a \", _jsx(_components.code, {\n children: \"POST\"\n }), \" request with query parameters, a JSON body, or both such as:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"curl -L -X POST 'https://http-7272.twil.io/response?age=42\u0026firstName=Rick' \\\\\\n -H 'Content-Type: application/json' \\\\\\n --data-raw '{\\n \\\"color\\\": \\\"orange\\\"\\n }'\",\n \"lang\": \"shellscript\",\n \"meta\": \"\",\n \"code\": \"curl -L -X POST 'https://http-7272.twil.io/response?age=42\u0026firstName=Rick' \\\\\\n -H 'Content-Type: application/json' \\\\\\n --data-raw '{\\n \\\"color\\\": \\\"orange\\\"\\n }'\",\n \"tokens\": [[\"curl\", \"#FFA657\"], \" \", [\"-L -X\", \"#79C0FF\"], \" \", [\"POST 'https://http-7272.twil.io/response?age=42\u0026firstName=Rick'\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n \", [\"-H\", \"#79C0FF\"], \" \", [\"'Content-Type: application/json'\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n \", [\"--data-raw\", \"#79C0FF\"], \" \", [\"'{\", \"#A5D6FF\"], \"\\n \", [\"\\\"color\\\": \\\"orange\\\"\", \"#A5D6FF\"], \"\\n \", [\"}'\", \"#A5D6FF\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n }), _jsxs(_components.p, {\n children: [\"the Function of the receiving end will then have access to an \", _jsx(_components.code, {\n children: \"event\"\n }), \" object with these contents:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"{\\n \\\"firstName\\\": \\\"Rick\\\",\\n \\\"age\\\": \\\"42\\\",\\n \\\"color\\\": \\\"orange\\\",\\n \\\"request\\\": {\\n \\\"headers\\\": { ... },\\n \\\"cookies\\\": { ... }\\n }\\n}\",\n \"lang\": \"json\",\n \"meta\": \"\",\n \"code\": \"{\\n \\\"firstName\\\": \\\"Rick\\\",\\n \\\"age\\\": \\\"42\\\",\\n \\\"color\\\": \\\"orange\\\",\\n \\\"request\\\": {\\n \\\"headers\\\": { ... },\\n \\\"cookies\\\": { ... }\\n }\\n}\",\n \"tokens\": [[\"{\", \"#C9D1D9\"], \"\\n \", [\"\\\"firstName\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Rick\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"age\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"42\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"color\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"orange\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"\\\"request\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \"\\n \", [\"\\\"headers\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \" \", [\"...\", \"#FFA198\", {\n \"fontStyle\": \"italic\"\n }], \" \", [\"},\", \"#C9D1D9\"], \"\\n \", [\"\\\"cookies\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \" \", [\"...\", \"#FFA198\", {\n \"fontStyle\": \"italic\"\n }], \" \", [\"}\", \"#C9D1D9\"], \"\\n \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n }), _jsx(Warning, {\n children: _jsxs(_components.p, {\n children: [\"In the case of a \", _jsx(_components.code, {\n children: \"POST\"\n }), \" request, query parameters and any JSON in the body of the request will be merged into the same object. If a property such as \", _jsx(_components.code, {\n children: \"age\"\n }), \" is defined in both parts of the request, the value defined in the JSON body takes precedence and will overwrite the initial value from the query parameters in \", _jsx(_components.code, {\n children: \"event\"\n }), \".\"]\n })\n }), _jsx(Info, {\n children: _jsxs(_components.p, {\n children: [\"You might have noticed that \", _jsx(_components.code, {\n children: \"event\"\n }), \" also contains a \", _jsx(_components.code, {\n children: \"request\"\n }), \" object with \", _jsx(_components.code, {\n children: \"headers\"\n }), \" and \", _jsx(_components.code, {\n children: \"cookies\"\n }), \" that aren't explicitly part of the request(s). To learn more about this aspect of \", _jsx(_components.code, {\n children: \"event\"\n }), \" and how you can leverage request headers and cookies, refer to the \", _jsx(_components.a, {\n href: \"/docs/serverless/functions-assets/functions/headers-and-cookies/access\",\n children: \"accessing headers and cookies\"\n }), \" documentation.\"]\n })\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"parameters-from-the-run-function-widget-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"parameters-from-the-run-function-widget\",\n children: \"Parameters from the Run Function Widget\"\n }), _jsxs(_components.p, {\n children: [\"Similar to a direct HTTP request, a Run Function widget is invoking a Function, that Function's \", _jsx(_components.code, {\n children: \"event\"\n }), \" will be populated by any arguments specified in the configuration of that particular Run Function widget.\"]\n }), _jsx(_components.p, {\n children: \"Refer to the Use the Run Function widget in Studio example to see what this looks like in practice when combining Functions and Studio Flows.\"\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"callback-function-section-indexable\",\n children: [_jsx(_components.h2, {\n id: \"callback-function\",\n children: \"Callback Function\"\n }), _jsxs(_components.p, {\n children: [\"When you have finished processing your request, you need to invoke the \", _jsx(_components.code, {\n children: \"callback\"\n }), \" function to emit a response and signal that your Function has completed its execution. The \", _jsx(_components.code, {\n children: \"callback\"\n }), \" method will automatically determine the data type of your response and serialize the output appropriately.\"]\n }), _jsxs(_components.p, {\n children: [\"You \", _jsx(_components.strong, {\n children: \"must\"\n }), \" invoke the \", _jsx(_components.code, {\n children: \"callback\"\n }), \" method when your Function is done processing. Failure to invoke \", _jsx(_components.code, {\n children: \"callback\"\n }), \" will cause your Function to continue running up to the 10-second execution time limit. When your Function reaches the execution time limit, it will be terminated, and a 504 Gateway timeout error will be returned to the client.\"]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"callback-and-asynchronous-limitations-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"callback-and-asynchronous-limitations\",\n children: \"Callback and Asynchronous Limitations\"\n }), _jsxs(_components.p, {\n children: [\"It is important to note that when the \", _jsx(_components.code, {\n children: \"callback\"\n }), \" function is invoked, it will terminate all execution of your Function. This includes any asynchronous processes you may have kicked off during the execution of your \", _jsx(_components.code, {\n children: \"handler\"\n }), \" method.\"]\n }), _jsxs(_components.p, {\n children: [\"For this reason, if you are using libraries that are natively asynchronous and/or operate using \", _jsx(_components.a, {\n href: \"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\",\n children: \"Promises\"\n }), \", you must properly handle this asynchronous behavior. Structure your code to call \", _jsx(_components.code, {\n children: \"callback\"\n }), \" within the correct callback methods, \", _jsx(_components.code, {\n children: \".then\"\n }), \" chains, or after \", _jsx(_components.code, {\n children: \"await\"\n }), \" in \", _jsx(_components.code, {\n children: \"async\"\n }), \" functions.\"]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"complete-execution-with-asynchronous-http-request-section\",\n children: [_jsx(_components.h4, {\n id: \"complete-execution-with-asynchronous-http-request\",\n children: \"Complete Execution with Asynchronous HTTP Request\"\n }), _jsx(_components.p, {\n children: \"Example of how to appropriately use callback() with an asynchronous HTTP request\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Fetch the already initialized Twilio REST client\\n const client = context.getTwilioClient();\\n\\n // Determine message details from the incoming event, with fallback values\\n const from = event.From || '+15095550100';\\n const to = event.To || '+15105550101';\\n const body = event.Body || 'Ahoy, World!';\\n\\n client.messages\\n .create({ to, from, body })\\n .then((result) =\u003e {\\n console.log('Created message using callback');\\n console.log(result.sid);\\n // Callback is placed inside the successful response of the request\\n return callback();\\n })\\n .catch((error) =\u003e {\\n console.error(error);\\n // Callback is also used in the catch handler to end execution on errors\\n return callback(error);\\n });\\n\\n // If you were to place the callback() function here, instead, then the process would\\n // terminate before your API request to create a message could complete.\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Complete Execution with Asynchronous HTTP Request\\\" description=\\\"Example of how to appropriately use callback() with an asynchronous HTTP request\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Fetch the already initialized Twilio REST client\\n const client = context.getTwilioClient();\\n\\n // Determine message details from the incoming event, with fallback values\\n const from = event.From || '+15095550100';\\n const to = event.To || '+15105550101';\\n const body = event.Body || 'Ahoy, World!';\\n\\n client.messages\\n .create({ to, from, body })\\n .then((result) =\u003e {\\n console.log('Created message using callback');\\n console.log(result.sid);\\n // Callback is placed inside the successful response of the request\\n return callback();\\n })\\n .catch((error) =\u003e {\\n console.error(error);\\n // Callback is also used in the catch handler to end execution on errors\\n return callback(error);\\n });\\n\\n // If you were to place the callback() function here, instead, then the process would\\n // terminate before your API request to create a message could complete.\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Fetch the already initialized Twilio REST client\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"client\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"context.\", \"#C9D1D9\"], [\"getTwilioClient\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n \", [\"// Determine message details from the incoming event, with fallback values\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"from\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.From\", \"#C9D1D9\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'+15095550100'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"to\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.To\", \"#C9D1D9\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'+15105550101'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"body\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.Body\", \"#C9D1D9\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"'Ahoy, World!'\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n \", [\"client.messages\", \"#C9D1D9\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"({ to, from, body })\", \"#C9D1D9\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"then\", \"#D2A8FF\"], [\"((\", \"#C9D1D9\"], [\"result\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Created message using callback'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(result.sid);\", \"#C9D1D9\"], \"\\n \", [\"// Callback is placed inside the successful response of the request\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n \", [\"})\", \"#C9D1D9\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"catch\", \"#D2A8FF\"], [\"((\", \"#C9D1D9\"], [\"error\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"console.\", \"#C9D1D9\"], [\"error\", \"#D2A8FF\"], [\"(error);\", \"#C9D1D9\"], \"\\n \", [\"// Callback is also used in the catch handler to end execution on errors\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(error);\", \"#C9D1D9\"], \"\\n \", [\"});\", \"#C9D1D9\"], \"\\n\\n \", [\"// If you were to place the callback() function here, instead, then the process would\", \"#8B949E\"], \"\\n \", [\"// terminate before your API request to create a message could complete.\", \"#8B949E\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"callback-arguments-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"callback-arguments\",\n children: \"Callback Arguments\"\n }), _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Argument\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Type\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Description\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"error\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"string|null\"\n })\n }), _jsxs(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: [\"Error indicating what problem was encountered during execution. Defining this value (as anything but \", _jsx(_components.code, {\n children: \"null\"\n }), \" or \", _jsx(_components.code, {\n children: \"undefined\"\n }), \") will result in the client receiving a HTTP 500 response with the provided payload.\"]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"response\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"string|object|null\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Successful response generated by the Function. Providing this argument will result in the client receiving a HTTP 200 response containing the provided value.\"\n })]\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"how-do-i-return-an-error-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"how-do-i-return-an-error\",\n children: \"How do I return an error?\"\n }), _jsxs(_components.p, {\n children: [\"If you have encountered an exception in your code or otherwise want to indicate an error state, invoke the \", _jsx(_components.code, {\n children: \"callback\"\n }), \" method with the error object or intended message as a single parameter:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"return callback(error);\",\n \"lang\": \"javascript\",\n \"meta\": \"\",\n \"code\": \"return callback(error);\",\n \"tokens\": [[\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(error);\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"how-do-i-return-a-successful-response-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"how-do-i-return-a-successful-response\",\n children: \"How do I return a successful response?\"\n }), _jsxs(_components.p, {\n children: [\"To signal success and return a value, pass a falsy value such as \", _jsx(_components.code, {\n children: \"null\"\n }), \" or \", _jsx(_components.code, {\n children: \"undefined\"\n }), \" as the first parameter to \", _jsx(_components.code, {\n children: \"callback\"\n }), \", and your intended response as the second parameter:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"return callback(null, response);\",\n \"lang\": \"javascript\",\n \"meta\": \"\",\n \"code\": \"return callback(null, response);\",\n \"tokens\": [[\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n }), _jsx(Info, {\n children: _jsxs(_components.p, {\n children: [\"Please note that all samples demonstrate using the \", _jsx(_components.code, {\n children: \"return\"\n }), \" keyword before calling \", _jsx(_components.code, {\n children: \"callback\"\n }), \". This is to prevent subsequent code from unintentionally running before \", _jsx(_components.code, {\n children: \"handler\"\n }), \" is terminated, or from calling \", _jsx(_components.code, {\n children: \"callback\"\n }), \" multiple times, and is considered a best practice when working with Functions.\"]\n })\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"return-an-error-response-section\",\n children: [_jsx(_components.h4, {\n id: \"return-an-error-response\",\n children: \"Return an Error Response\"\n }), _jsx(_components.p, {\n children: \"Example of how to return an error message with HTTP 500 Error\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Providing a single string or an Error object will result in a 500 Error\\n return callback('Something went very, very wrong.');\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Return an Error Response\\\" description=\\\"Example of how to return an error message with HTTP 500 Error\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Providing a single string or an Error object will result in a 500 Error\\n return callback('Something went very, very wrong.');\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Providing a single string or an Error object will result in a 500 Error\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Something went very, very wrong.'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"return-a-simple-successful-response-section\",\n children: [_jsx(_components.h4, {\n id: \"return-a-simple-successful-response\",\n children: \"Return a Simple Successful Response\"\n }), _jsx(_components.p, {\n children: \"Example of how to return an empty HTTP 200 OK\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Providing neither error nor response will result in a 200 OK\\n return callback();\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Return a Simple Successful Response\\\" description=\\\"Example of how to return an empty HTTP 200 OK\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Providing neither error nor response will result in a 200 OK\\n return callback();\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Providing neither error nor response will result in a 200 OK\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"return-a-successful-plaintext-response-section\",\n children: [_jsx(_components.h4, {\n id: \"return-a-successful-plaintext-response\",\n children: \"Return a Successful Plaintext Response\"\n }), _jsx(_components.p, {\n children: \"Example of how to return plaintext with HTTP 200 OK\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Providing a string will result in a 200 OK\\n return callback(null, 'This is fine');\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Return a Successful Plaintext Response\\\" description=\\\"Example of how to return plaintext with HTTP 200 OK\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Providing a string will result in a 200 OK\\n return callback(null, 'This is fine');\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Providing a string will result in a 200 OK\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \" \", [\"'This is fine'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"return-a-successful-json-response-section\",\n children: [_jsx(_components.h4, {\n id: \"return-a-successful-json-response\",\n children: \"Return a Successful JSON Response\"\n }), _jsx(_components.p, {\n children: \"Example of how to return JSON in HTTP 200 OK\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Construct an object in any way\\n const response = { result: 'winner winner!' };\\n // A JavaScript object as a response will be serialized to JSON and returned\\n // with the Content-Type header set to \\\"application/json\\\" automatically\\n return callback(null, response);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Return a Successful JSON Response\\\" description=\\\"Example of how to return JSON in HTTP 200 OK\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Construct an object in any way\\n const response = { result: 'winner winner!' };\\n // A JavaScript object as a response will be serialized to JSON and returned\\n // with the Content-Type header set to \\\"application/json\\\" automatically\\n return callback(null, response);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Construct an object in any way\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"{ result:\", \"#C9D1D9\"], \" \", [\"'winner winner!'\", \"#A5D6FF\"], \" \", [\"};\", \"#C9D1D9\"], \"\\n \", [\"// A JavaScript object as a response will be serialized to JSON and returned\", \"#8B949E\"], \"\\n \", [\"// with the Content-Type header set to \\\"application/json\\\" automatically\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"how-do-i-return-twiml-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"how-do-i-return-twiml\",\n children: \"How do I return TwiML?\"\n }), _jsx(_components.p, {\n children: \"In addition to the standard response types, Functions has built-in support to allow you to quickly generate and return TwiML for your application's needs.\"\n }), _jsxs(_components.p, {\n children: [\"This is such a common use case that \", _jsx(_components.code, {\n children: \"callback\"\n }), \" directly accepts valid TwiML objects, such as \", _jsx(_components.code, {\n children: \"MessagingResponse\"\n }), \" and \", _jsx(_components.code, {\n children: \"VoiceResponse\"\n }), \", as the second argument. If you return TwiML in this way, the environment will automatically convert your response to XML without any extra work required on your part. (Such as stringifying the TwiML and specifying a response content type)\"]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"return-a-static-messaging-response-to-incoming-text-messages-section\",\n children: [_jsx(_components.h4, {\n id: \"return-a-static-messaging-response-to-incoming-text-messages\",\n children: \"Return a static Messaging response to incoming text messages\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Create a new messaging response object\\n const twiml = new Twilio.twiml.MessagingResponse();\\n // Use any of the Node.js SDK methods, such as `message`, to compose a response\\n twiml.message('Hello, World!');\\n // Return the TwiML as the second argument to `callback`\\n // This will render the response as XML in reply to the webhook request\\n return callback(null, twiml);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Return a static Messaging response to incoming text messages\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Create a new messaging response object\\n const twiml = new Twilio.twiml.MessagingResponse();\\n // Use any of the Node.js SDK methods, such as `message`, to compose a response\\n twiml.message('Hello, World!');\\n // Return the TwiML as the second argument to `callback`\\n // This will render the response as XML in reply to the webhook request\\n return callback(null, twiml);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Create a new messaging response object\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"twiml\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.twiml.\", \"#C9D1D9\"], [\"MessagingResponse\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n \", [\"// Use any of the Node.js SDK methods, such as `message`, to compose a response\", \"#8B949E\"], \"\\n \", [\"twiml.\", \"#C9D1D9\"], [\"message\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Hello, World!'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n \", [\"// Return the TwiML as the second argument to `callback`\", \"#8B949E\"], \"\\n \", [\"// This will render the response as XML in reply to the webhook request\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", twiml);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"return-a-voice-response-that-includes-say-and-play-verbs-section\",\n children: [_jsx(_components.h4, {\n id: \"return-a-voice-response-that-includes-say-and-play-verbs\",\n children: \"Return a Voice response that includes Say and Play verbs\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // Create a new voice response object\\n const twiml = new Twilio.twiml.VoiceResponse();\\n // Webhook information is accessible as properties of the `event` object\\n const city = event.FromCity;\\n const number = event.From;\\n\\n // You can optionally edit the voice used, template variables into your\\n // response, play recorded audio, and more\\n twiml.say({ voice: 'alice' }, `Never gonna give you up, ${city || number}`);\\n twiml.play('https://demo.twilio.com/docs/classic.mp3');\\n // Return the TwiML as the second argument to `callback`\\n // This will render the response as XML in reply to the webhook request\\n return callback(null, twiml);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Return a Voice response that includes Say and Play verbs\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // Create a new voice response object\\n const twiml = new Twilio.twiml.VoiceResponse();\\n // Webhook information is accessible as properties of the `event` object\\n const city = event.FromCity;\\n const number = event.From;\\n\\n // You can optionally edit the voice used, template variables into your\\n // response, play recorded audio, and more\\n twiml.say({ voice: 'alice' }, `Never gonna give you up, ${city || number}`);\\n twiml.play('https://demo.twilio.com/docs/classic.mp3');\\n // Return the TwiML as the second argument to `callback`\\n // This will render the response as XML in reply to the webhook request\\n return callback(null, twiml);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// Create a new voice response object\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"twiml\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.twiml.\", \"#C9D1D9\"], [\"VoiceResponse\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n \", [\"// Webhook information is accessible as properties of the `event` object\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"city\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.FromCity;\", \"#C9D1D9\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"number\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"event.From;\", \"#C9D1D9\"], \"\\n\\n \", [\"// You can optionally edit the voice used, template variables into your\", \"#8B949E\"], \"\\n \", [\"// response, play recorded audio, and more\", \"#8B949E\"], \"\\n \", [\"twiml.\", \"#C9D1D9\"], [\"say\", \"#D2A8FF\"], [\"({ voice:\", \"#C9D1D9\"], \" \", [\"'alice'\", \"#A5D6FF\"], \" \", [\"},\", \"#C9D1D9\"], \" \", [\"`Never gonna give you up, ${\", \"#A5D6FF\"], [\"city\", \"#C9D1D9\"], \" \", [\"||\", \"#FF7B72\"], \" \", [\"number\", \"#C9D1D9\"], [\"}`\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n \", [\"twiml.\", \"#C9D1D9\"], [\"play\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'https://demo.twilio.com/docs/classic.mp3'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n \", [\"// Return the TwiML as the second argument to `callback`\", \"#8B949E\"], \"\\n \", [\"// This will render the response as XML in reply to the webhook request\", \"#8B949E\"], \"\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", twiml);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"global-classes-section-indexable\",\n children: [_jsx(_components.h2, {\n id: \"global-classes\",\n children: \"Global classes\"\n }), _jsxs(_components.p, {\n children: [\"In addition to the values and helpers available through the \", _jsx(_components.code, {\n children: \"context\"\n }), \", \", _jsx(_components.code, {\n children: \"event\"\n }), \", and \", _jsx(_components.code, {\n children: \"callback\"\n }), \" parameters, you have access to some globally-scoped helper classes that you can access without needing to import any new \", _jsx(_components.a, {\n href: \"/docs/serverless/functions-assets/functions/dependencies\",\n children: \"Dependencies\"\n }), \".\"]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"twilio-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"twilio\",\n children: \"Twilio\"\n }), _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.code, {\n children: \"Twilio\"\n }), \" class is accessible at any time. This is commonly used to initialize TwiML or \", _jsx(_components.a, {\n href: \"/docs/iam/access-tokens\",\n children: \"Access Tokens\"\n }), \" for your Function responses. For example:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"// Initialize TwiML without needing to import Twilio\\nconst response = new Twilio.twiml.MessagingResponse();\\n\\n// Similarly for other utilities, such as Access Tokens\\nconst AccessToken = Twilio.jwt.AccessToken;\\nconst SyncGrant = AccessToken.SyncGrant;\",\n \"lang\": \"javascript\",\n \"meta\": \"\",\n \"code\": \"// Initialize TwiML without needing to import Twilio\\nconst response = new Twilio.twiml.MessagingResponse();\\n\\n// Similarly for other utilities, such as Access Tokens\\nconst AccessToken = Twilio.jwt.AccessToken;\\nconst SyncGrant = AccessToken.SyncGrant;\",\n \"tokens\": [[\"// Initialize TwiML without needing to import Twilio\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.twiml.\", \"#C9D1D9\"], [\"MessagingResponse\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n\", [\"// Similarly for other utilities, such as Access Tokens\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"AccessToken\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Twilio.jwt.AccessToken;\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"SyncGrant\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"AccessToken.SyncGrant;\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"runtime-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"runtime\",\n children: \"Runtime\"\n }), _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.a, {\n href: \"/docs/serverless/functions-assets/client\",\n children: \"Runtime Client\"\n }), \" is accessible via \", _jsx(_components.code, {\n children: \"Runtime\"\n }), \", and exposes helper methods for accessing private Assets, other Functions, and the \", _jsx(_components.a, {\n href: \"/docs/sync\",\n children: \"Sync\"\n }), \" client. For example:\"]\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"const text = Runtime.getAssets()['/my-file.txt'].open();\\nconsole.log('Your file contents: ' + text);\",\n \"lang\": \"javascript\",\n \"meta\": \"\",\n \"code\": \"const text = Runtime.getAssets()['/my-file.txt'].open();\\nconsole.log('Your file contents: ' + text);\",\n \"tokens\": [[\"const\", \"#FF7B72\"], \" \", [\"text\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Runtime.\", \"#C9D1D9\"], [\"getAssets\", \"#D2A8FF\"], [\"()[\", \"#C9D1D9\"], [\"'/my-file.txt'\", \"#A5D6FF\"], [\"].\", \"#C9D1D9\"], [\"open\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Your file contents: '\", \"#A5D6FF\"], \" \", [\"+\", \"#FF7B72\"], \" \", [\"text);\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"constructing-a-response-section-indexable\",\n children: [_jsx(_components.h2, {\n id: \"constructing-a-response\",\n children: \"Constructing a Response\"\n }), _jsxs(_components.p, {\n children: [\"In some instances, your Function may need greater control over the response it is going to emit. For those instances, you can use the Twilio Response object that is available in the global scope of your Function by default. No need to import \", _jsx(_components.a, {\n href: \"#twilio\",\n children: \"Twilio\"\n }), \" yourself!\"]\n }), _jsx(_components.p, {\n children: \"By using the Twilio Response object, you will be able to specify the status code, headers, and body of your response. You can begin constructing a custom response by creating a new Twilio Response object, like so:\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"// No need to import Twilio; it is globally available in Functions\\nconst response = new Twilio.Response();\",\n \"lang\": \"javascript\",\n \"meta\": \"\",\n \"code\": \"// No need to import Twilio; it is globally available in Functions\\nconst response = new Twilio.Response();\",\n \"tokens\": [[\"// No need to import Twilio; it is globally available in Functions\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.\", \"#C9D1D9\"], [\"Response\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"twilio-response-methods-section-indexable\",\n children: [_jsx(_components.h3, {\n id: \"twilio-response-methods\",\n children: \"Twilio Response Methods\"\n }), _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Method\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Return Type\"\n }), _jsx(_components.th, {\n style: {\n textAlign: \"left\"\n },\n children: \"Description\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"setStatusCode(int)\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"self\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Sets the status code in the HTTP response\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"setBody(mixed)\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"self\"\n })\n }), _jsxs(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: [\"Sets the body of the HTTP response. Takes either an object or string. When setting the body to anything other than text, make sure to set the corresponding \", _jsx(_components.code, {\n children: \"Content-Type\"\n }), \" header with \", _jsx(_components.code, {\n children: \"appendHeader()\"\n })]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"appendHeader(string, string)\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"self\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Adds a header to the HTTP response. The first argument specifies the header name and the second argument the header value\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"setHeaders(object)\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: _jsx(_components.code, {\n children: \"self\"\n })\n }), _jsx(_components.td, {\n style: {\n textAlign: \"left\"\n },\n children: \"Sets all of the headers for the HTTP response. Takes an object mapping the names of the headers to their respective values\"\n })]\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"set-a-status-code-in-a-response-section\",\n children: [_jsx(_components.h4, {\n id: \"set-a-status-code-in-a-response\",\n children: \"Set a Status Code in a Response\"\n }), _jsx(_components.p, {\n children: \"Example of setting a Status Code using Twilio Response\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n // Set the status code to 204 Not Content\\n response.setStatusCode(204);\\n\\n return callback(null, response);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Set a Status Code in a Response\\\" description=\\\"Example of setting a Status Code using Twilio Response\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n // Set the status code to 204 Not Content\\n response.setStatusCode(204);\\n\\n return callback(null, response);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// No need to import Twilio; it is globally available in Functions\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.\", \"#C9D1D9\"], [\"Response\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n \", [\"// Set the status code to 204 Not Content\", \"#8B949E\"], \"\\n \", [\"response.\", \"#C9D1D9\"], [\"setStatusCode\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"204\", \"#79C0FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"build-a-plaintext-response-section\",\n children: [_jsx(_components.h4, {\n id: \"build-a-plaintext-response\",\n children: \"Build a Plaintext Response\"\n }), _jsx(_components.p, {\n children: \"Example of building a plaintext response with Twilio Response\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n response\\n // Set the status code to 200 OK\\n .setStatusCode(200)\\n // Set the response body\\n .setBody('This is fine');\\n\\n return callback(null, response);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Build a Plaintext Response\\\" description=\\\"Example of building a plaintext response with Twilio Response\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n response\\n // Set the status code to 200 OK\\n .setStatusCode(200)\\n // Set the response body\\n .setBody('This is fine');\\n\\n return callback(null, response);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// No need to import Twilio; it is globally available in Functions\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.\", \"#C9D1D9\"], [\"Response\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n \", [\"response\", \"#C9D1D9\"], \"\\n \", [\"// Set the status code to 200 OK\", \"#8B949E\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"setStatusCode\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"200\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n \", [\"// Set the response body\", \"#8B949E\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"setBody\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'This is fine'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"building-a-json-response-section\",\n children: [_jsx(_components.h4, {\n id: \"building-a-json-response\",\n children: \"Building a JSON Response\"\n }), _jsx(_components.p, {\n children: \"Example of building a JSON response with Twilio Response\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n response\\n // Set the status code to 200 OK\\n .setStatusCode(200)\\n // Set the Content-Type Header\\n .appendHeader('Content-Type', 'application/json')\\n // Set the response body\\n .setBody({\\n everything: 'is alright',\\n });\\n\\n return callback(null, response);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Building a JSON Response\\\" description=\\\"Example of building a JSON response with Twilio Response\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n response\\n // Set the status code to 200 OK\\n .setStatusCode(200)\\n // Set the Content-Type Header\\n .appendHeader('Content-Type', 'application/json')\\n // Set the response body\\n .setBody({\\n everything: 'is alright',\\n });\\n\\n return callback(null, response);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// No need to import Twilio; it is globally available in Functions\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.\", \"#C9D1D9\"], [\"Response\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n \", [\"response\", \"#C9D1D9\"], \"\\n \", [\"// Set the status code to 200 OK\", \"#8B949E\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"setStatusCode\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"200\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n \", [\"// Set the Content-Type Header\", \"#8B949E\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"appendHeader\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Content-Type'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"'application/json'\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n \", [\"// Set the response body\", \"#8B949E\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"setBody\", \"#D2A8FF\"], [\"({\", \"#C9D1D9\"], \"\\n \", [\"everything:\", \"#C9D1D9\"], \" \", [\"'is alright'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"});\", \"#C9D1D9\"], \"\\n\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"set-an-http-header-in-a-response-section\",\n children: [_jsx(_components.h4, {\n id: \"set-an-http-header-in-a-response\",\n children: \"Set an HTTP Header in a Response\"\n }), _jsx(_components.p, {\n children: \"Example of setting an header using Twilio Response\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n response\\n // Set the status code to 301 Redirect\\n .setStatusCode(301)\\n // Set the Location header for redirect\\n .appendHeader('Location', 'https://twilio.com');\\n\\n return callback(null, response);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Set an HTTP Header in a Response\\\" description=\\\"Example of setting an header using Twilio Response\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n response\\n // Set the status code to 301 Redirect\\n .setStatusCode(301)\\n // Set the Location header for redirect\\n .appendHeader('Location', 'https://twilio.com');\\n\\n return callback(null, response);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// No need to import Twilio; it is globally available in Functions\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.\", \"#C9D1D9\"], [\"Response\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n \", [\"response\", \"#C9D1D9\"], \"\\n \", [\"// Set the status code to 301 Redirect\", \"#8B949E\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"setStatusCode\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"301\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n \", [\"// Set the Location header for redirect\", \"#8B949E\"], \"\\n \", [\".\", \"#C9D1D9\"], [\"appendHeader\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Location'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"'https://twilio.com'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"set-multiple-http-headers-in-a-response-section\",\n children: [_jsx(_components.h4, {\n id: \"set-multiple-http-headers-in-a-response\",\n children: \"Set Multiple HTTP Headers in a Response\"\n }), _jsx(_components.p, {\n children: \"Example of setting multiple headers using Twilio Response\"\n }), _jsx(CodeBlock, {\n codeblock: {\n \"value\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n // Build a mapping of headers as a way to set many with one command\\n const headers = {\\n 'Access-Control-Allow-Origin': 'example.com',\\n 'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,OPTIONS',\\n 'Access-Control-Allow-Headers': 'Content-Type',\\n };\\n\\n // Set headers in response\\n response.setHeaders(headers);\\n\\n return callback(null, response);\\n};\",\n \"lang\": \"javascript\",\n \"meta\": \"title=\\\"Set Multiple HTTP Headers in a Response\\\" description=\\\"Example of setting multiple headers using Twilio Response\\\"\",\n \"code\": \"exports.handler = (context, event, callback) =\u003e {\\n // No need to import Twilio; it is globally available in Functions\\n const response = new Twilio.Response();\\n\\n // Build a mapping of headers as a way to set many with one command\\n const headers = {\\n 'Access-Control-Allow-Origin': 'example.com',\\n 'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,OPTIONS',\\n 'Access-Control-Allow-Headers': 'Content-Type',\\n };\\n\\n // Set headers in response\\n response.setHeaders(headers);\\n\\n return callback(null, response);\\n};\",\n \"tokens\": [[\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"// No need to import Twilio; it is globally available in Functions\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"response\", \"#79C0FF\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Twilio.\", \"#C9D1D9\"], [\"Response\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n \", [\"// Build a mapping of headers as a way to set many with one command\", \"#8B949E\"], \"\\n \", [\"const\", \"#FF7B72\"], \" \", [\"headers\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n \", [\"'Access-Control-Allow-Origin'\", \"#A5D6FF\"], [\":\", \"#C9D1D9\"], \" \", [\"'example.com'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"'Access-Control-Allow-Methods'\", \"#A5D6FF\"], [\":\", \"#C9D1D9\"], \" \", [\"'GET,PUT,POST,DELETE,OPTIONS'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"'Access-Control-Allow-Headers'\", \"#A5D6FF\"], [\":\", \"#C9D1D9\"], \" \", [\"'Content-Type'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n \", [\"};\", \"#C9D1D9\"], \"\\n\\n \", [\"// Set headers in response\", \"#8B949E\"], \"\\n \", [\"response.\", \"#C9D1D9\"], [\"setHeaders\", \"#D2A8FF\"], [\"(headers);\", \"#C9D1D9\"], \"\\n\\n \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\", response);\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n \"annotations\": [],\n \"themeName\": \"github-dark\",\n \"style\": {\n \"color\": \"#c9d1d9\",\n \"background\": \"#0d1117\"\n }\n }\n })]\n }), \"\\n\", _jsxs(_components.section, {\n id: \"whats-next-section-indexable\",\n children: [_jsx(_components.h2, {\n id: \"whats-next\",\n children: \"What's next?\"\n }), _jsxs(_components.p, {\n children: [\"By now, you should have a pretty good idea of what goes into writing a Function. (Although there are plenty of specifics and \", _jsx(_components.a, {\n href: \"/docs/serverless/functions-assets/quickstart\",\n children: \"examples\"\n }), \" yet to learn)\"]\n }), _jsxs(_components.p, {\n children: [\"The next important step in your journey is to \", _jsx(_components.a, {\n href: \"/docs/serverless/functions-assets/visibility\",\n children: \"understand the concept of visibility\"\n }), \", and how it affects access to and use of your Functions (and Assets)!\"]\n })]\n })]\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};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{"title":"Function Execution","seo_description":"Learn the process of how your Twilio Function code is executed, details about the parameters it receives, and how to construct a response.","show_breadcrumbs":false,"page_type":"docs","headings":[{"depth":2,"value":"Handler Method","id":"handler-method"},{"depth":3,"value":"Handler Arguments","id":"handler-arguments"},{"depth":2,"value":"Context Object","id":"context-object"},{"depth":3,"value":"Helper Methods","id":"helper-methods"},{"depth":3,"value":"Environment Variables","id":"environment-variables"},{"depth":2,"value":"Event Object","id":"event-object"},{"depth":3,"value":"Webhook parameters","id":"webhook-parameters"},{"depth":3,"value":"Parameters from HTTP requests","id":"parameters-from-http-requests"},{"depth":3,"value":"Parameters from the Run Function Widget","id":"parameters-from-the-run-function-widget"},{"depth":2,"value":"Callback Function","id":"callback-function"},{"depth":3,"value":"Callback and Asynchronous Limitations","id":"callback-and-asynchronous-limitations"},{"depth":3,"value":"Callback Arguments","id":"callback-arguments"},{"depth":3,"value":"How do I return an error?","id":"how-do-i-return-an-error"},{"depth":3,"value":"How do I return a successful response?","id":"how-do-i-return-a-successful-response"},{"depth":3,"value":"How do I return TwiML?","id":"how-do-i-return-twiml"},{"depth":2,"value":"Global classes","id":"global-classes"},{"depth":3,"value":"Twilio","id":"twilio"},{"depth":3,"value":"Runtime","id":"runtime"},{"depth":2,"value":"Constructing a Response","id":"constructing-a-response"},{"depth":3,"value":"Twilio Response Methods","id":"twilio-response-methods"},{"depth":2,"value":"What's next?","id":"whats-next"}]},"scope":{}},"matter":{"title":"Function Execution","seo_description":"Learn the process of how your Twilio Function code is executed, details about the parameters it receives, and how to construct a response.","show_breadcrumbs":false,"page_type":"docs","headings":[{"depth":2,"value":"Handler Method","id":"handler-method"},{"depth":3,"value":"Handler Arguments","id":"handler-arguments"},{"depth":2,"value":"Context Object","id":"context-object"},{"depth":3,"value":"Helper Methods","id":"helper-methods"},{"depth":3,"value":"Environment Variables","id":"environment-variables"},{"depth":2,"value":"Event Object","id":"event-object"},{"depth":3,"value":"Webhook parameters","id":"webhook-parameters"},{"depth":3,"value":"Parameters from HTTP requests","id":"parameters-from-http-requests"},{"depth":3,"value":"Parameters from the Run Function Widget","id":"parameters-from-the-run-function-widget"},{"depth":2,"value":"Callback Function","id":"callback-function"},{"depth":3,"value":"Callback and Asynchronous Limitations","id":"callback-and-asynchronous-limitations"},{"depth":3,"value":"Callback Arguments","id":"callback-arguments"},{"depth":3,"value":"How do I return an error?","id":"how-do-i-return-an-error"},{"depth":3,"value":"How do I return a successful response?","id":"how-do-i-return-a-successful-response"},{"depth":3,"value":"How do I return TwiML?","id":"how-do-i-return-twiml"},{"depth":2,"value":"Global classes","id":"global-classes"},{"depth":3,"value":"Twilio","id":"twilio"},{"depth":3,"value":"Runtime","id":"runtime"},{"depth":2,"value":"Constructing a Response","id":"constructing-a-response"},{"depth":3,"value":"Twilio Response Methods","id":"twilio-response-methods"},{"depth":2,"value":"What's next?","id":"whats-next"}]},"sidebarMenu":{"name":"Functions and Assets","path":"/docs/serverless/functions-assets","type":"file","children":[{"type":"file","name":"Return to Serverless overview","path":"/docs/serverless"},{"type":"file","name":"Overview","path":"/docs/serverless/functions-assets/functions"},{"type":"directory","path":"","name":"Technical concepts","children":[{"type":"file","name":"Function request flow","path":"/docs/serverless/functions-assets/functions/request-flow"},{"type":"file","name":"Function execution","path":"/docs/serverless/functions-assets/functions/invocation"},{"type":"file","name":"Visibility of Functions and Assets","path":"/docs/serverless/functions-assets/visibility"}]},{"type":"directory","path":"","name":"Get started","children":[{"type":"file","name":"Create a Service","path":"/docs/serverless/functions-assets/functions/create-service"},{"type":"file","name":"Assets","path":"/docs/serverless/functions-assets/assets"}]},{"type":"link","isExternal":true,"path":"/docs/labs/serverless-toolkit","name":"Serverless Toolkit"},{"type":"directory","path":"","name":"Developer guides","children":[{"type":"file","name":"Runtime Client","path":"/docs/serverless/functions-assets/client"},{"type":"file","name":"Runtime Handler","path":"/docs/serverless/functions-assets/handler"},{"type":"file","name":"Environment variables","path":"/docs/serverless/functions-assets/functions/variables"},{"type":"file","name":"Regional support","path":"/docs/global-infrastructure/regional-support-functions-assets"},{"type":"file","name":"Dependencies","path":"/docs/serverless/functions-assets/functions/dependencies"},{"type":"directory","path":"","name":"Headers and cookies","children":[{"type":"file","name":"Overview","path":"/docs/serverless/functions-assets/functions/headers-and-cookies"},{"type":"file","name":"Access values","path":"/docs/serverless/functions-assets/functions/headers-and-cookies/access"},{"type":"file","name":"Set and modify values","path":"/docs/serverless/functions-assets/functions/headers-and-cookies/setting-and-modifying"},{"type":"file","name":"Limitations","path":"/docs/serverless/functions-assets/functions/headers-and-cookies/limitations"},{"type":"link","isExternal":false,"path":"/docs/serverless/functions-assets/quickstart#learn-how-headers-and-cookies-can-add-extra-functionality-and-security","name":"Examples"}]},{"type":"file","name":"Debugging","path":"/docs/serverless/functions-assets/functions/debugging"},{"type":"file","name":"Frequently asked questions","path":"/docs/serverless/functions-assets/faq"}]},{"type":"directory","path":"","name":"Examples","children":[{"type":"file","name":"Receive an inbound SMS","path":"/docs/serverless/functions-assets/quickstart/receive-sms"},{"type":"file","name":"Send SMS and MMS","path":"/docs/serverless/functions-assets/quickstart/send-sms-and-mms"},{"type":"file","name":"Receive an incoming phone call","path":"/docs/serverless/functions-assets/quickstart/receive-call"},{"type":"file","name":"Make a Call","path":"/docs/serverless/functions-assets/quickstart/make-a-call"},{"type":"file","name":"Make an API request","path":"/docs/serverless/functions-assets/quickstart/api-request"},{"type":"file","name":"Use the Run Function widget in Studio","path":"/docs/serverless/functions-assets/quickstart/run-function-studio-widget"},{"type":"file","name":"Handle real-time data with Twilio Sync","path":"/docs/serverless/functions-assets/quickstart/real-time-data-sync"},{"type":"file","name":"Protect your Function with Basic Auth","path":"/docs/serverless/functions-assets/quickstart/basic-auth"},{"type":"file","name":"Protect your Function with JSON Web Token","path":"/docs/serverless/functions-assets/quickstart/json-web-token"},{"type":"file","name":"Manage application state with cookies","path":"/docs/serverless/functions-assets/quickstart/cookies-state"},{"type":"file","name":"Validate Webhook requests from SendGrid","path":"/docs/serverless/functions-assets/quickstart/validate-webhook-requests-from-sendgrid"},{"type":"file","name":"Enable CORS between Flex Plugins and Functions","path":"/docs/serverless/functions-assets/quickstart/enabling-cors-between-flex-plugins-and-functions"},{"type":"file","name":"Add delay","path":"/docs/serverless/functions-assets/quickstart/add-delay"},{"type":"file","name":"Determine carrier, phone number type, and caller info","path":"/docs/serverless/functions-assets/quickstart/lookup-carrier-and-caller-info"},{"type":"file","name":"Time of day routing with Functions","path":"/docs/serverless/functions-assets/quickstart/time-of-day-routing"},{"type":"file","name":"Normalize telephone numbers","path":"/docs/serverless/functions-assets/quickstart/normalize-telephone-numbers"},{"type":"file","name":"Prevent blocked numbers from calling your application","path":"/docs/serverless/functions-assets/quickstart/blocked-numbers"},{"type":"file","name":"Display Node.js and Twilio Helper Library versions","path":"/docs/serverless/functions-assets/quickstart/display-versions"},{"type":"file","name":"How to call Functions from Android","path":"/docs/serverless/functions-assets/quickstart/how-to-call-twilio-functions-android"},{"type":"file","name":"How to call Functions from iOS","path":"/docs/serverless/functions-assets/quickstart/how-to-call-twilio-functions-ios"}]},{"type":"directory","path":"","name":"Migration guides","children":[{"type":"file","name":"Migrating from Functions(Classic) to the new Functions Editor","path":"/docs/serverless/functions-assets/functions/migrating-functionsclassic-new-functions-editor"},{"type":"file","name":"Node.js v18 upgrade","path":"/docs/serverless/functions-assets/node-upgrade"}]}]},"editUrl":"https://github.com/twilio-internal/docs/blob/main/docs/serverless/functions-assets/functions/invocation.mdx?plain=1"},"__N_SSG":true},"page":"/docs/[...path]","query":{"path":["serverless","functions-assets","functions","invocation"]},"buildId":"17cMqf3dMWO0te7bKczIy","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10