Docs

Docs

x-cpod-domain: marketing

Marketing

Campaigns, leads, content, events, social, emails, and analytics.

Try in explorer client.marketing

Campaign

A marketing campaign across one or more channels.

REST path/api/v1/marketing/campaigns
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.marketing.campaigns.list()

// create:
await client.marketing.campaigns.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  name: "example name",
  app_id: "example app_id",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
name*stringCampaign name.
typeenumCampaign channel type.emailsocialcontenteventpaidorganicmulti_channel
statusenumCampaign lifecycle status.draftactivepausedcompletedcancelled
start_datedate-timeISO 8601 campaign start date.
end_datedate-timeISO 8601 campaign end date.
budgetnumberAllocated campaign budget.
spentnumberAmount spent so far.
goalsjsonCampaign goals.
owner_idstringUser ID of the campaign owner.

Lead

A marketing lead with a score and lifecycle status.

REST path/api/v1/marketing/leads
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.marketing.leads.list()

// create:
await client.marketing.leads.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  name: "example name",
  app_id: "example app_id",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
name*stringLead name.
emailemailLead email address.
sourcestringLead source (e.g. website_form).
scorenumberLead score.
statusenumLead lifecycle status.newqualifiednurturingconvertedlost
contact_idstringLinked contact ID.
account_idstringLinked account ID.
campaign_idstringOriginating campaign ID.
assigned_tostringUser ID of the assignee.
notesstringFree-form notes.

Content

A marketing content asset (blog, whitepaper, video, etc.).

REST path/api/v1/marketing/content
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.marketing.content.list()

// create:
await client.marketing.content.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  title: "example title",
  app_id: "example app_id",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
title*stringContent title.
typeenumContent type.blogwhitepapercase_studyvideoinfographicwebinarother
statusenumContent lifecycle status.draftreviewpublishedarchived
author_idstringUser ID of the author.
published_atdate-timeISO 8601 publish timestamp.
urlstringPublished content URL.
campaign_idstringAssociated campaign ID.
tagsjsonFree-form tags.
summarystringContent summary.

Event

A marketing event (webinar, conference, meetup, etc.).

REST path/api/v1/marketing/events
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.marketing.events.list()

// create:
await client.marketing.events.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  name: "example name",
  app_id: "example app_id",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
name*stringEvent name.
typeenumEvent type.webinarconferencemeetupworkshoptrade_showother
statusenumEvent lifecycle status.planningactivecompletedcancelled
start_datedate-timeISO 8601 event start date/time.
end_datedate-timeISO 8601 event end date/time.
locationstringEvent location (or 'Virtual').
capacitynumberMaximum attendee capacity.
registerednumberNumber of registered attendees.
campaign_idstringAssociated campaign ID.
organizer_idstringUser ID of the organizer.

Social

A social media post on a marketing platform.

REST path/api/v1/marketing/social
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.marketing.social.list()

// create:
await client.marketing.social.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  platform: "twitter",
  content: "example content",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
platform*enumSocial platform.twitterlinkedinfacebookinstagramyoutubetiktokother
content*stringPost content.
statusenumPost lifecycle status.draftscheduledpublishedfailed
scheduled_atdate-timeISO 8601 scheduled publish time.
published_atdate-timeISO 8601 actual publish time.
engagementjsonEngagement metrics (likes, shares, comments).
campaign_idstringAssociated campaign ID.
author_idstringUser ID of the author.
external_idstringExternal platform post ID.

Email

A marketing email blast with delivery and engagement rates.

REST path/api/v1/marketing/emails
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.marketing.emails.list()

// create:
await client.marketing.emails.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  subject: "example subject",
  app_id: "example app_id",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
subject*stringEmail subject line.
campaign_idstringAssociated campaign ID.
statusenumEmail lifecycle status.draftscheduledsentbouncedcancelled
template_idstringEmail template ID.
sent_atdate-timeISO 8601 send timestamp.
scheduled_atdate-timeISO 8601 scheduled send time.
recipient_countnumberNumber of recipients.
open_ratenumberOpen rate (0–1).
click_ratenumberClick-through rate (0–1).
bounce_ratenumberBounce rate (0–1).
author_idstringUser ID of the author.

MarketingAnalytics

A marketing analytics metric tied to a campaign.

REST path/api/v1/marketing/analytics
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.marketing.analytics.list()

// create:
await client.marketing.analytics.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  campaign_id: "example campaign_id",
  metric_type: "impressions",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
campaign_id*stringAssociated campaign ID.
metric_type*enumType of marketing metric.impressionsclicksconversionsrevenuecost_per_leadcost_per_acquisitionroiother
value*numberMetric value.
periodstringReporting period (e.g. '2026-06').
dimensionsjsonMetric breakdown dimensions.
sourcestringSource system (e.g. google_analytics).