Sure, it’s pretty cool you can send a text message using our API in minutes. But what about preventing text messages from being sent in the middle of the night? Or creating real-time performance reports? Not as easy.

Campaign is functionality that comes with a user interface so nearly anyone can modify or test SMS message content. It's also a shortcut for Marketers, Product, and Developers to manage SMS campaign requisites like timezone protection, opt-out compliance and real-time performance reports. 

Step by Step:
Creating and sending a text message campaign:

  1. Create, fund, and add numbers
    Create an account or log in at If you don't see the Campaign icon contact us at Because the campaign functionality is a feature of our API, it uses the same funds and numbers within your API account. Be sure to click the  API icon at the top left to add funds and numbers.
  2. Create a number set(s) and save the number set ID(s)
    Number sets organize phone numbers into groups to help distribute text messages. Distributing messages across multiple numbers reduces the chances of them getting delayed, failing to send, or getting blocked. We strongly recommend one number set per brand/company so Company A uses a different number than Company B, and that replies or inbound calls for each are routed differently.

    Learn how to do this via API at: Store the number set ID you receive in response for the next step. Note: campaign functionality uses a new version of Ytel APIs requiring a new type of authorization token. Learn more at
  3. Add phone number(s) to a number set
    Learn how to do this via our API at

    View a list of your numbers via the UI at or via API. Please note you can add more than one number to a number set at a time.
  4. Create a template
    Within your account, click the target icon labeled Campaign. Click the Template tab from the top navigation, and then click the Add Template button. If you prefer, you may skip this step and create a template at the same time you create a campaign (next step). Learn how to create a template via our API at

    Note: To dynamically insert custom parameters -- like appointment date and time -- insert a unique message parameter by using % before and after the custom parameter name you want to use. For example, to dynamically insert the recipient's appointment date and time, add  %APTDATETIME% into the template. Moving forward, insert a value for this parameter when you make a API request. Use the campaignExtData param, as explained within the API documentation, to pass the values.
  5. Create a campaign and grab the campaign ID(s)
    Within your account, click the "Campaign” tab in the top navigation and then click the “Add Campaign” button.

    You can set time zone protection so messages aren’t sent during inappropriate time windows. If you make a request to send a message outside of your time blocks, the message will get placed in queue and sent out at the next available time.

    Note we use the contact's zip code to determine the recipient’s timezone. If no zip code is provided, the area code associated to the phone number will determine.

    Be sure to grab the campaign ID from the confirmation page or by clicking "Copy ID" from the campaigns list page. Learn how to create a campaign via API at
  6. Create a contact (optional, but recommended)
    Send campaigns to a contact instead of specifying a phone number. We recommend using a contact ID to make data management and integrity easier. Learn how to create a contact via API at
  7. Queue a campaign to be sent
    Learn how to queue a campaign to be sent via API at Either use a contact ID or add a phone number to send a message. If you inserted parameters into your template, don't forget to pass values into those fields by including the data in the campaignExtData parameter.
  8. Review campaign performance
    Within your account, click the "Reporting” tab in the top navigation, set your filters, and then click the generate report button. 

Did this answer your question?