Marketing
The Marketing module powers multi-channel campaign execution and digital presence management. It covers the full journey from audience segmentation through email drip sequences, social publishing, web content, and campaign performance analytics.
What it covers
| Section | Description |
|---|---|
| Campaigns | Multi-channel campaign containers with stakeholder tracking |
| Campaign Channels | Per-channel execution: Email, SMS, Ads, PPC, Social, Web Content |
| Segments | Dynamic audience lists used for targeting |
| Email Drip Campaigns | Automated multi-step email sequences |
| Email Sequence Workflows | Branching logic that drives drip campaign execution |
| Social Publishing | Connect social accounts, schedule and publish posts, monitor inbox |
| Social Analytics | Engagement metrics per social connection |
| Web Publishing & Websites | Manage web properties, pages, and publish jobs |
| Workflow Enrollments | Enrol contacts into marketing workflows |
| Send Marketing Email | One-off transactional sends triggered from campaign logic |
Authentication
All Marketing endpoints require a valid session token or cookie (same as all modules). Campaign management endpoints additionally require the marketing:write permission scope.
Core services
Send Marketing Email
Delegates to the Communications module's SendEmailService under the hood. Use this endpoint when you want to send an email in the context of a marketing campaign (tracks opens, clicks, and links back to a campaign record).
POST /api/marketing/send-marketing-email
Content-Type: application/json
{
"to": "contact@example.com",
"subject": "Your Q3 offer",
"templateId": "<template_id>",
"campaignId": "<campaign_id>"
}
Social Connection
Connect and disconnect social media accounts. Supported platforms are configured per-tenant.
GET /api/marketing/social-connection # list connected accounts
POST /api/marketing/social-connection/connect # initiate OAuth connect
DELETE /api/marketing/social-connection/{id} # disconnect
Social Publishing
Schedule and publish posts across connected social accounts.
POST /api/marketing/social-publishing
{
"connectionId": "<id>",
"content": "Excited to announce our new product line! #Enterprise",
"scheduledAt": "2026-07-01T09:00:00Z"
}
Web Publishing
Manage web pages and trigger publish jobs for connected web properties.
GET /api/marketing/web-pages
POST /api/marketing/web-pages
POST /api/marketing/web-publishing/publish
Data models
All Marketing models support the standard CRUD envelope at /api/marketing/{model}.
| Model | Slug | Notes |
|---|---|---|
| Campaign Channel — Ads | campaignChannelAds |
Display/programmatic ad placements |
| Campaign Channel — Email | campaignChannelEmails |
Email channel configuration per campaign |
| Campaign Channel — PPC | campaignChannelPpc |
Pay-per-click channel settings |
| Campaign Channel — SMS | campaignChannelSms |
SMS channel configuration |
| Campaign Channel — Social | campaignChannelSocial |
Social channel configuration |
| Campaign Channel — Web Content | campaignChannelWebContent |
Web content channel settings |
| Campaign Sequences | campaignSequences |
Ordered email step containers |
| Campaign Sequence Snapshots | campaignSequenceSnapshots |
Point-in-time audience captures |
| Segments | segments |
Dynamic audience lists |
| Email Drip Campaigns | emailDripCampaigns |
Multi-step automated email campaigns |
| Email Sequence Workflows | emailSequenceWorkflows |
Branching workflow definitions |
| Websites | websites |
Managed web properties |
| Web Pages | webPages |
Individual pages within a website |
| Workflow Enrollments | workflowEnrollments |
Contact → workflow enrolment records |
| Workflow Steps | workflowSteps |
Individual steps in a workflow |
| Workflows | workflows |
Marketing automation workflow definitions |
Each channel model also has associated files, notes, and tasks sub-resources following the standard naming pattern (e.g. campaignChannelAdsTasks).
Common patterns
Creating a campaign with an email channel
# 1. Create the campaign container
POST /api/marketing/campaigns
{ "name": "Summer 2026 Launch", "startDate": "2026-07-01" }
# 2. Add an email channel
POST /api/marketing/campaignChannelEmails
{
"campaignId": "<campaign_id>",
"fromName": "Enterprise Team",
"fromEmail": "hello@enterprise.internal",
"subject": "Introducing our Summer 2026 line"
}
Enrolling a contact in a workflow
POST /api/marketing/workflowEnrollments
{
"workflowId": "<workflow_id>",
"contactId": "<contact_id>",
"enrolledAt": "2026-06-15T00:00:00Z"
}
API sections
These sections are available in the Marketing API Reference:
- Campaign Channel Ads
- Campaign Channel Ads Files
- Campaign Channel Ads Notes
- Campaign Channel Ads Tasks
- Campaign Channel Ppc
- Campaign Channel Ppc Files
- Campaign Channel Ppc Notes
- Campaign Channel Ppc Tasks
- Campaign Channel Sms
- Campaign Channel Sms Files
- Campaign Channel Sms Notes
- Campaign Channel Sms Tasks
- Campaign Channel Social
- Campaign Channel Social Files
- Campaign Channel Social Notes
- Campaign Channel Social Tasks
- Campaign Channel Web Content
- Campaign Channel Web Content Files
- Campaign Channel Web Content Notes
- Campaign Channel Web Content Tasks
- Campaign Sequence Snapshot Contacts
- Campaign Sequence Snapshots
- Campaign Sequences
- Campaign Stakeholder Users
- Email Send Providers
- Email Sequence Workflows
- Marketing Email Recipients
- Marketing Emails
- Social Analytics
- Social Connection
- Social Inbox
- Social Publish Job
- Social Publishing
- Web Pages
- Web Publishing
- Website Statuses
- Website Types
- Websites
- Workflow Enrollments
- Workflow Steps
- Workflows