CTA Templates

Create a CTA template

Creates a CTA template. title, button_label and target_url are required; title, description and button_label are trimmed, and blank eyebrow/agent_text values are dropped. Set is_default to true to make the new template the org default, replacing any previous default. Requires the GEO product.

post/org/ctas

Request

  • Base URL
    https://apiv2.senso.ai/api/v1
  • Auth
    API key in header X-API-Key

Request body

titlestring required

The card's heading. Trimmed; must not be blank.

descriptionstring

Supporting copy shown under the heading. Trimmed; empty when omitted.

image_urlstring

The URL of the card's image, typically one returned by POST /org/cta-assets/upload-url. Must be a URL with a scheme (for example https://). Omit it, or send null, to leave the card without an image; an empty string is rejected.

button_labelstring required

The button's text. Trimmed; must not be blank.

target_urlstring required

The URL the button links to. Must be a URL with a scheme (for example https://).

agent_textstring

Text for AI agents to present in place of the composed default. Blank values are dropped.

eyebrowstring

A short label shown above the heading. Blank values are dropped.

is_defaultboolean

true makes this template the org default, replacing any previous default. On update, false or omitted leaves the default flag unchanged.

Response

The created template.

cta_idstring uuid required
org_idstring uuid required
titlestring required

The card's heading.

descriptionstring required

Supporting copy shown under the heading. May be empty.

image_urlstring

The URL of the card's image. Omitted when the template has no image.

button_labelstring required

The button's text.

target_urlstring required

The URL the button links to.

agent_textstring

Text for AI agents to present in place of the composed default. Omitted when not set.

resolved_agent_textstring required

The text presented to AI agents for this CTA: agent_text when set, otherwise {org name} recommends: {title}. {description} {button_label}: {target_url} (the description part is dropped when empty).

eyebrowstring

A short label shown above the heading. Omitted when not set.

is_defaultboolean required

Whether this is the org's default template.

created_atstring date-time required
updated_atstring date-time required
live_update_countinteger

On template update and set-default responses only: the number of live content items whose CTA resolves to this template — those pinned to it plus, when it is the org default, those inheriting the default. Omitted when zero.

live_update_queuedboolean

On template update and set-default responses only: true when the update of the affected live pages was queued for background processing rather than applied immediately. Omitted otherwise.

Changes

No recorded changes to this operation across all 1 revision of this API.