Campaigns
Campaigns let you group outreach efforts and track which contacts participated. Each campaign holds one or more sessions; each session links to a list of contacts.
Create a campaign
Section titled “Create a campaign”campaign = client.campaigns.create({ "name": "Q3 NPS Survey", "companyId": "YOUR_COMPANY_ID",})print(campaign["id"])Required fields
Section titled “Required fields”| Field | Type | Description |
|---|---|---|
name | string | Human-readable campaign name |
companyId | string | Your company identifier |
List campaigns
Section titled “List campaigns”campaigns = client.campaigns.get()Filter with a LoopBack-style dict (see Querying):
campaigns = client.campaigns.get({ "where": {"companyId": "YOUR_COMPANY_ID"},})Create a session
Section titled “Create a session”A session links a set of contacts to a campaign. Each contact is referenced by their id.
session = client.campaigns.create_session(campaign["id"], { "crmContactId": ["contact-uuid-1", "contact-uuid-2"],})Required fields
Section titled “Required fields”| Field | Type | Description |
|---|---|---|
crmContactId | string[] | List of contact IDs to include in this session |
List sessions for a campaign
Section titled “List sessions for a campaign”sessions = client.campaigns.get_sessions(campaign["id"])Get feedback from sessions
Section titled “Get feedback from sessions”Retrieve all feedback submissions linked to sessions of a campaign:
feedbacks = client.campaigns.get_sessions_feedbacks(campaign["id"])This is useful for reporting — you can cross-reference which contacts submitted responses within a specific campaign.
Typical workflow
Section titled “Typical workflow”# 1. Create contactscontact_a = client.contacts.create({ "name": "Alice", "lastname": "Doe", "email": "alice@example.com", "companyId": "YOUR_COMPANY_ID",})contact_b = client.contacts.create({ "name": "Bob", "lastname": "Doe", "email": "bob@example.com", "companyId": "YOUR_COMPANY_ID",})
# 2. Create a campaigncampaign = client.campaigns.create({ "name": "Q3 NPS Survey", "companyId": "YOUR_COMPANY_ID",})
# 3. Add a session with both contactssession = client.campaigns.create_session(campaign["id"], { "crmContactId": [contact_a["id"], contact_b["id"]],})
# 4. Later: pull all feedback for this campaignfeedbacks = client.campaigns.get_sessions_feedbacks(campaign["id"])