Twilio Source

Twilio powers the future of business communications by enabling phones, VoIP, and messaging to be embedded into web, desktop, and mobile software. Visit Website

Take your company’s analysis to the next level by adding Twilio as a Source to Segment. We’ll automatically collect objects like Addresses or Messages and load them into your data warehouse.

Getting Started

  1. From your workspace’s sources page, click add source.

  2. Choose Twilio.

  3. Give the source a nickname and a schema name. The nickname will be used to designate the source in the Segment interface, and the schema name is the namespace you’ll be querying against in your warehouse. Both can be whatever you like, but we recommend sticking to something that reflects the source itself, like Twilio for nickname and twilio or twilio_prod for the schema name.

    Note that you can add multiple instances if you have multiple Twilio accounts. That’s why we allow you to customize the source’s nickname and schema name!

  4. When you click Connect, you’ll be dropped into Twilio’s OAuth flow. Once you sign in and grant permissions, you’ll be good to go!



The Twilio source is built with a sync component, which means we’ll make requests to their API on your behalf on a 3 hour interval to pull the latest data into Segment. In the initial sync, we’ll grab all the Twilio objects (and their corresponding properties) according to the Collections Table below. The objects will be written into a separate schema, corresponding to the source instance’s schema name you designated upon creation (ie. twilio_prod.charges.

Our sync component uses an upsert API, so the data in your warehouse loaded via sync will reflect the latest state of the corresponding resource in Twilio. For example, if ticket_status goes from open to closed between syncs, on its next sync that tickets status will be closed.

The source syncs and warehouse syncs are independent processes. Source runs pull your data into the Segment Hub, and warehouse runs flush that data to your warehouse. Sources will sync with Segment every 3 hours. Depending on your Warehouses plan, we will push the Source data to your warehouse on the interval associated with your billing plan.

At the moment, we don’t support filtering which objects or properties get synced. If you’re interested in this feature, please let us know!


Collections are the groupings of resources we pull from your source. In your warehouse, each collection gets its own table.

addressesobjectAn Address instance resource represents your or your customer’s physical location within a country. For more info, see here
callsobjectA Call instance resource represents a connection between a telephone and Twilio. For more info, see here
conferencesobjectThe Conference instance resource allows you to query and manage the state of individual conferences. For more info, see here
transcriptionsobjectA Transcription instance resource represents a transcription of a recording For more info, see here
messagesobjectA Message instance resource represents an inbound or outbound message. For more info, see here
call_feedbackobjectThe Call Feedback subresource provides a simple API to report the quality experienced during a phone call. For more info, see here

Adding sub-accounts

If you’d like to sync multiple twilio sub-accounts, just follow the steps below!

  1. Set up a source for each sub-account
  2. Disable the source right after creation to avoid syncing data from the default account
  3. Contact us specifying you would like to add a sub-account to a Twilio source, include a link to the Twilio source(s), and finally, do not forget to include the sub-account SID!

If you have any questions, or see anywhere we can improve our documentation, please let us know!