Menu

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Function Request Flow

The best way to understand how Twilio Functions work is to start by understanding the HTTP request flow and how Twilio ultimate executes your code. Twilio Functions is designed to handle as much of the infrastructure work of building a web app as possible. For Twilio Functions this work begins at the front door handling the HTTP request for your Function and continues through the pipeline up to your code.

Functions Request Flow

  1. Every Function Invocation begins with an HTTP Client issuing a request to your Twilio Function. For most Functions, the HTTP client is the Twilio Voice or Messaging API responding to an incoming phone call or text message
  2. Twilio Function Gateway receives this request and attempts to validate it. If your Twilio Function has Signature Validation enabled the Function Gateway will attempt to validate the signature. If the request or Twilio Signature are invalid the request is rejected with the appropriate HTTP 400 response.
  3. After Twilio Function Gateway has accepted the HTTP request, it will normalize the request into a payload for Your Twilio Function. The normalized request is provided to your Twilio Function as two arguments: context and event. Once the payload has been constructed, it is used to invoke your Twilio Function.
  4. At invocation your Twilio Function begins executing the code you have provided. When your Twilio Function completes executing, it can emit a response using the callback method provided. The emitted response will be transmitted to the Twilio Functions Gateway.
  5. Upon receiving the result from your Twilio Function, the Twilio Function Gateway will construct an HTTP Response and return it to the HTTP Client.

Supported Requests

Currently, Twilio Functions only supports HTTP requests. Twilio Functions will response to the four primary HTTP verbs: GET, POST, PUT and DELETE.

For POST requests, Twilio Functions natively supports application/json and application/x-www-form-urlencoded. This means that JSON bodies and form parameters will be normalized into the event parameter.

Request Limitations

There are several important limitations to Twilio Functions that you should consider when designing your application:

  • Execution Time: Twilio Functions execute for at most 5 seconds. Any Twilio Function that exceeds the 5 second limit will be terminated, and the client will receive an HTTP 504 Gateway Time-out response.
  • Path Parameter Support: Twilio Functions does not provide support for path parameters. This means that you can not use the URL to pass information into your application. It is recommended that you use either a GET or POST parameter.
  • Maximum Response Size: Twilio Functions have a constrained response size of 4 MB.

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

Loading Code Sample...