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’sscheduled_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
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
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
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
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
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"
}