Constant Contact’s (CTCT) Short Message Service (SMS) campaigns allow CTCT account owners to engage with contacts in a more personal and cost-effective way, by sending text messages directly to their mobile phones. Unlike email, SMS messages are typically opened within minutes, resulting in a high level of contact engagement, conversion rates, and opt-ins.

Contacts tend to opt-in to receiving SMS messages because it provides them with timely notifications about their products and services, such as flash sales, promotions, event reminders, new products and services, support services, and abandoned cart notifications. It also allows them to send texts to alert, poll, request feedback, or get contacts to participate in a contest.

One of the key differences between SMS marketing and email marketing is that there are certain text messages that are automatically sent to contacts that ensure that a CTCT accounts contacts have provided their consent. These automated messages keep accounts compliant with the consent laws around SMS marketing.

Before You Begin

For your application to make valid API calls to SMS endpoints on behalf of CTCT accounts:

CTCT account owners can use the links that follow to learn more about registering and enabling SMS on their accounts.

Learn more about registering for SMS

Learn more about the SMS permissions policy.

SMS Campaign Workflows

The following lists and provides an overview of SMS workflow tasks Links to more details are included for each workflow,

Create a New SMS Campaign

When you create a new SMS campaign, the associated SMS campaign activity and SMS document containing the SMS content are created. Optionally, you can use the source_campaign_id parameter to create a new SMS campaign that uses an existing campaign’s content, footer and from_name.

  1. Verify that the SMS campaign name is unique. Before you create a new SMS campaign, verify that the campaign name does not already exist by making a GET call to the /sms/campaigns/{campaign_id}/campaign_name endpoint. If you used an existing SMS campaign ID to create the SMS campaign, you must provide a new unique name to use.

  2. Create the SMS campaign and campaign activity. Make a POST call to the /sms/campaigns endpoint and use the sms_campaign_create-request object to specify the SMS campaign values to include in the body of the request. For example:

  {
   "contact_list_ids": [
   "string"
   ],
   "content": "Text us if you would like to attend the event.",
   "footer": "Text STOP to unsubscribe",
   "from_name": "CoffeeShop",
   "name": "string",
   "start_at": "2020-02-13T09:41:28.015Z"
   }

Schedule to Send an SMS Campaign

You can choose to send an SMS Campaign right away, or you can choose to schedule when to send it. You cannot schedule or send an SMS campaign during “quiet hours”. Constant Contact SMS quiet hours are defined as Eastern Daylight Time (EDT) and are between the hours of 8:00 PM and 11:00 AM.

If the requested scheduled time falls within quiet hours, the scheduled time will be advanced beyond the end of quiet hours and the requested_scheduled_date in the response will be the scheduled date passed in the request. If the scheduled time is unaltered, the requested_scheduled_date in the response will be null. When the scheduled time is advanced for quiet hours to avoid top-of-the-hour peak processing, it becomes 11:00 AM plus a random increment of a few minutes.

  1. Verify that your local timezone setting is accurate. SMS uses the timezone settings to determine when to send SMS messages.

  2. To schedule when to send an SMS campaign activity, make a POST call to the /sms/activities/{campaign_activity_id}/schedules endpoint. Use the campaign_activity_id parameter to specify the SMS campaign to use and the sms_schedule_input parameter to specify the date and time you want the SMS Campaign sent. For example, {"scheduled_date": "2023-06-27T10:28:09.000Z"}. This changes the campaign activity status to SCHEDULED. You can also schedule the SMS to be sent now by setting the scheduled date to “0”. For example, {"scheduled_date": "0"}.