Create or Update RCS Campaign

Create a new RCS campaign or update an existing one. <Note> **To create a new campaign:** Omit `campaignId` — one will be generated automatically. **Before you start:** Create a [brand](/api-reference/brands/upsert) first — you'll need its `id` for the [`brand`](#request.body.brand) field. All fields are **required** unless specified otherwise, and will be validated when [submitted](/api-reference/campaigns/rcs/submit). </Note>

Authentication

PINNACLE-API-KEYstring
API Key authentication via header

Request

This endpoint expects an object.
agentobjectOptional
Create an agent for the campaign.
brandstringOptional
Unique identifier for the brand.
campaignIdstringOptional
Unique identifier for the campaign.
expectedAgentResponseslist of stringsOptional

List of what the agent might say to users. See the Expected Agent Responses section for requirements.

Limit: 1 to 5

useCaseDescriptionstringOptional

Detailed summary of what the brand is and how this agent will be used. See the Use Case Behavior section for requirements.

messagingTypeenumOptional

Type of message the agent sends.

OTP: One time passwords or verification codes.
TRANSACTIONAL: Account updates, alerts, or notifications.
PROMOTIONAL: Marketing, sales, or offers.
MULTI_USE: Mixed message types.

Allowed values:
ctaMediastringOptional

URL to the opt-in form or a URL to a screenshot of the opt-in CTA.

optInMethodstringOptional

Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the Opt-In Method section for requirements.

keywordsobjectOptional
trafficobjectOptional
ctaLanguagestringOptional

Required text that appears next to the opt-in checkbox for your opt-in form. This checkbox has to be unchecked by default. See the CTA Language section for requirements.

demoTriggerstringOptional

Instructions on how an external reviewer can trigger messages and an example flow from the agent. This is usually an inbound text message to the agent that will start a flow of messages between the agent and the user. See the Demo Trigger section for requirements.

Response

Successfully created or updated RCS campaign.
agentobject
Agent configured to the campaign.
agentIdstring
Agent's unique identifier.
brandobject
Brand associated with this campaign.
statusenum

Current review status of the campaign.

INCOMPLETE: Not submitted.

IN REVIEW: Being reviewed by carriers.

VERIFIED: Approved and ready to send messages.

FAILED: Issues and errors related to the campaign’s details.

Allowed values:
campaignIdstring

Unique identifier for the campaign. This identifier is a string that always begins with the prefix rcs_, for example: rcs_1234567890.

expectedAgentResponseslist of strings

List of what the agent might say to users. See the Expected Agent Responses section for requirements.

useCaseDescriptionstring

Detailed summary of what the brand is and how this agent will be used. See the Use Case Behavior section for requirements.

messagingTypeenum

Type of message the agent sends.

OTP: One time passwords or verification codes.
TRANSACTIONAL: Account updates, alerts, or notifications.
PROMOTIONAL: Marketing, sales, or offers.
MULTI_USE: Mixed message types.

Allowed values:
ctaMediastring

URL to the opt-in form or a URL to a screenshot of the opt-in CTA.

optInMethodstring

Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the Opt-In Method section for requirements.

keywordsobject
trafficobject
ctaLanguagestring

Required text that appears next to the opt-in checkbox for your opt-in form. This checkbox has to be unchecked by default. See the CTA Language section for requirements.

demoTriggerstring

Instructions on how an external reviewer can trigger messages and an example flow from the agent. This is usually an inbound text message to the agent that will start a flow of messages between the agent and the user. See the Demo Trigger section for requirements.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error