Link Search Menu Expand Document

Updated Fri Mar 5th 2021, 12:17 UTC

Create

POST /:account/campaigns

Create a new campaign.

  • Campaigns may be given the following optional parameters:
    • auto-assign : a boolean that denotes whether the campaign creator should automatically be assigned to the resulting conversations or not.
    • exclusion_time : if this parameter is passed, there will be a check to see if the recipients of the current campaign have received another campaign message recently. If they have, those recipients will not receive a message from the current campaign. exclusion_time takes an integer that denotes how many minutes in the past from the current campaign’s scheduled_at value to check for those recipients.

Examples

Creating a campaign

Request

POST /my_account/campaigns

Body

{
  "title": "My Beautiful Campaign",
  "message_body": "This is the best message ever.",
  "scheduled_at": "2018-11-19T23:00:00Z",
  "recipients": [
    "/contact_phones/mxvbRw"
  ]
}
Example
$ curl -i -H Accept:"application/vnd.textus+jsonld" \
    -H Authorization:"Bearer {token}" \
    -X POST /my_account/campaigns
     -d '{json: "body"}' 

Response

Status

201

Response Type

Campaign

Example
{
  "@type": "Campaign",
  "@context": "/contexts/Campaign.jsonld",
  "id": "/campaigns/joOQd57",
  "title": "The Best Campaign",
  "messageBody": "The best campaign message.",
  "state": "sent",
  "createdAt": "2018-11-19T20:51:54.000Z",
  "scheduledAt": "2018-11-19T21:00:54.000Z",
  "sendingStartAt": null,
  "sendingEndAt": null,
  "estimatedStartAt": null,
  "estimatedFinishAt": null,
  "deliveryStatistics": {},
  "delete": "/campaigns/joOQd57",
  "edit": null,
  "cancel": "/campaigns/joOQd57/cancel",
  "account": "/accounts/my_account",
  "user": {
    "@type": "User",
    "@context": "/contexts/User.jsonld",
    "id": "/users/wqyODPA",
    "name": "Chuck Norris",
    "firstName": "Chuck",
    "lastName": "Norris",
    "email": "chuck@textus.example",
    "avatar": null,
    "automatedActor": false,
    "hasPassword": false,
    "discarded": false,
    "settings": {
      "notifications": {
        "email": true
      },
      "customSettings": {}
    },
    "memberships": "/users/wqyODPA/memberships"
  },
  "totalRecipients": "/campaigns/AJoOVb7/campaign_recipients/total",
  "skippedRecipients": "/campaigns/AJoOVb7/campaign_recipients/skipped",
  "sentRecipients": "/campaigns/AJoOVb7/campaign_recipients/sent",
  "deliveredRecipients": "/campaigns/AJoOVb7/campaign_recipients/delivered",
  "repliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/replied",
  "unrepliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/unreplied",
  "failedRecipients": "/campaigns/AJoOVb7/campaign_recipients/failed"
}

Creating a campaign with an imported contacts filter

Request

POST /my_account/campaigns

Body

{
  "title": "My Beautiful Campaign",
  "message_body": "This is the best message ever.",
  "scheduled_at": "2018-11-19T23:00:00Z",
  "contact_filter": "/my_account/contact_filters/import:1pDAaom"
}
Example
$ curl -i -H Accept:"application/vnd.textus+jsonld" \
    -H Authorization:"Bearer {token}" \
    -X POST /my_account/campaigns
     -d '{json: "body"}' 

Response

Status

201

Response Type

Campaign

Example
{
  "@type": "Campaign",
  "@context": "/contexts/Campaign.jsonld",
  "id": "/campaigns/joOQd57",
  "title": "The Best Campaign",
  "messageBody": "The best campaign message.",
  "state": "sent",
  "createdAt": "2018-11-19T20:51:54.000Z",
  "scheduledAt": "2018-11-19T21:00:54.000Z",
  "sendingStartAt": null,
  "sendingEndAt": null,
  "estimatedStartAt": null,
  "estimatedFinishAt": null,
  "deliveryStatistics": {},
  "delete": "/campaigns/joOQd57",
  "edit": null,
  "cancel": "/campaigns/joOQd57/cancel",
  "account": "/accounts/my_account",
  "user": {
    "@type": "User",
    "@context": "/contexts/User.jsonld",
    "id": "/users/wqyODPA",
    "name": "Chuck Norris",
    "firstName": "Chuck",
    "lastName": "Norris",
    "email": "chuck@textus.example",
    "avatar": null,
    "automatedActor": false,
    "hasPassword": false,
    "discarded": false,
    "settings": {
      "notifications": {
        "email": true
      },
      "customSettings": {}
    },
    "memberships": "/users/wqyODPA/memberships"
  },
  "totalRecipients": "/campaigns/AJoOVb7/campaign_recipients/total",
  "skippedRecipients": "/campaigns/AJoOVb7/campaign_recipients/skipped",
  "sentRecipients": "/campaigns/AJoOVb7/campaign_recipients/sent",
  "deliveredRecipients": "/campaigns/AJoOVb7/campaign_recipients/delivered",
  "repliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/replied",
  "unrepliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/unreplied",
  "failedRecipients": "/campaigns/AJoOVb7/campaign_recipients/failed"
}

Creating a campaign with a campaign recipients contacts filter

Request

POST /my_account/campaigns

Body

{
  "title": "My Beautiful Campaign",
  "message_body": "This is the best message ever.",
  "scheduled_at": "2018-11-19T23:00:00Z",
  "contact_filter": "/campaigns/joOQd57/campaign_recipients/total/contact_filter"
}
Example
$ curl -i -H Accept:"application/vnd.textus+jsonld" \
    -H Authorization:"Bearer {token}" \
    -X POST /my_account/campaigns
     -d '{json: "body"}' 

Response

Status

201

Response Type

Campaign

Example
{
  "@type": "Campaign",
  "@context": "/contexts/Campaign.jsonld",
  "id": "/campaigns/joOQd57",
  "title": "The Best Campaign",
  "messageBody": "The best campaign message.",
  "state": "sent",
  "createdAt": "2018-11-19T20:51:54.000Z",
  "scheduledAt": "2018-11-19T21:00:54.000Z",
  "sendingStartAt": null,
  "sendingEndAt": null,
  "estimatedStartAt": null,
  "estimatedFinishAt": null,
  "deliveryStatistics": {},
  "delete": "/campaigns/joOQd57",
  "edit": null,
  "cancel": "/campaigns/joOQd57/cancel",
  "account": "/accounts/my_account",
  "user": {
    "@type": "User",
    "@context": "/contexts/User.jsonld",
    "id": "/users/wqyODPA",
    "name": "Chuck Norris",
    "firstName": "Chuck",
    "lastName": "Norris",
    "email": "chuck@textus.example",
    "avatar": null,
    "automatedActor": false,
    "hasPassword": false,
    "discarded": false,
    "settings": {
      "notifications": {
        "email": true
      },
      "customSettings": {}
    },
    "memberships": "/users/wqyODPA/memberships"
  },
  "totalRecipients": "/campaigns/AJoOVb7/campaign_recipients/total",
  "skippedRecipients": "/campaigns/AJoOVb7/campaign_recipients/skipped",
  "sentRecipients": "/campaigns/AJoOVb7/campaign_recipients/sent",
  "deliveredRecipients": "/campaigns/AJoOVb7/campaign_recipients/delivered",
  "repliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/replied",
  "unrepliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/unreplied",
  "failedRecipients": "/campaigns/AJoOVb7/campaign_recipients/failed"
}

Creating a campaign with a searched contacts filter

Request

POST /my_account/campaigns

Body

{
  "title": "My Beautiful Campaign",
  "message_body": "This is the best message ever.",
  "scheduled_at": "2018-11-19T23:00:00Z",
  "contact_filter": "/my_account/contact_filters/all?q=lucille"
}
Example
$ curl -i -H Accept:"application/vnd.textus+jsonld" \
    -H Authorization:"Bearer {token}" \
    -X POST /my_account/campaigns
     -d '{json: "body"}' 

Response

Status

201

Response Type

Campaign

Example
{
  "@type": "Campaign",
  "@context": "/contexts/Campaign.jsonld",
  "id": "/campaigns/joOQd57",
  "title": "The Best Campaign",
  "messageBody": "The best campaign message.",
  "state": "sent",
  "createdAt": "2018-11-19T20:51:54.000Z",
  "scheduledAt": "2018-11-19T21:00:54.000Z",
  "sendingStartAt": null,
  "sendingEndAt": null,
  "estimatedStartAt": null,
  "estimatedFinishAt": null,
  "deliveryStatistics": {},
  "delete": "/campaigns/joOQd57",
  "edit": null,
  "cancel": "/campaigns/joOQd57/cancel",
  "account": "/accounts/my_account",
  "user": {
    "@type": "User",
    "@context": "/contexts/User.jsonld",
    "id": "/users/wqyODPA",
    "name": "Chuck Norris",
    "firstName": "Chuck",
    "lastName": "Norris",
    "email": "chuck@textus.example",
    "avatar": null,
    "automatedActor": false,
    "hasPassword": false,
    "discarded": false,
    "settings": {
      "notifications": {
        "email": true
      },
      "customSettings": {}
    },
    "memberships": "/users/wqyODPA/memberships"
  },
  "totalRecipients": "/campaigns/AJoOVb7/campaign_recipients/total",
  "skippedRecipients": "/campaigns/AJoOVb7/campaign_recipients/skipped",
  "sentRecipients": "/campaigns/AJoOVb7/campaign_recipients/sent",
  "deliveredRecipients": "/campaigns/AJoOVb7/campaign_recipients/delivered",
  "repliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/replied",
  "unrepliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/unreplied",
  "failedRecipients": "/campaigns/AJoOVb7/campaign_recipients/failed"
}

API user creates campaign from group ID

Request

POST /my_account/campaigns

Body

{
  "title": "The Best Campaign",
  "message_body": "The best campaign message.",
  "contact_collection": "<%= group_contacts_path(groups(:my_group)) %>"
}
Example
$ curl -i -H Accept:"application/vnd.textus+jsonld" \
    -H Authorization:"Bearer {token}" \
    -X POST /my_account/campaigns
     -d '{json: "body"}' 

Response

Status

201

Response Type

Campaign

Example
{
  "@type": "Campaign",
  "@context": "/contexts/Campaign.jsonld",
  "id": "/campaigns/joOQd57",
  "title": "The Best Campaign",
  "messageBody": "The best campaign message.",
  "state": "sent",
  "createdAt": "2018-11-19T20:51:54.000Z",
  "scheduledAt": "2018-11-19T21:00:54.000Z",
  "sendingStartAt": null,
  "sendingEndAt": null,
  "estimatedStartAt": null,
  "estimatedFinishAt": null,
  "deliveryStatistics": {},
  "delete": "/campaigns/joOQd57",
  "edit": null,
  "cancel": "/campaigns/joOQd57/cancel",
  "account": "/accounts/my_account",
  "user": {
    "@type": "User",
    "@context": "/contexts/User.jsonld",
    "id": "/users/wqyODPA",
    "name": "Chuck Norris",
    "firstName": "Chuck",
    "lastName": "Norris",
    "email": "chuck@textus.example",
    "avatar": null,
    "automatedActor": false,
    "hasPassword": false,
    "discarded": false,
    "settings": {
      "notifications": {
        "email": true
      },
      "customSettings": {}
    },
    "memberships": "/users/wqyODPA/memberships"
  },
  "totalRecipients": "/campaigns/AJoOVb7/campaign_recipients/total",
  "skippedRecipients": "/campaigns/AJoOVb7/campaign_recipients/skipped",
  "sentRecipients": "/campaigns/AJoOVb7/campaign_recipients/sent",
  "deliveredRecipients": "/campaigns/AJoOVb7/campaign_recipients/delivered",
  "repliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/replied",
  "unrepliedRecipients": "/campaigns/AJoOVb7/campaign_recipients/unreplied",
  "failedRecipients": "/campaigns/AJoOVb7/campaign_recipients/failed"
}

© 2021 TextUs