Skip to content

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.

campaign = client.campaigns.create({
"name": "Q3 NPS Survey",
"companyId": "YOUR_COMPANY_ID",
})
print(campaign["id"])
FieldTypeDescription
namestringHuman-readable campaign name
companyIdstringYour company identifier
campaigns = client.campaigns.get()

Filter with a LoopBack-style dict (see Querying):

campaigns = client.campaigns.get({
"where": {"companyId": "YOUR_COMPANY_ID"},
})

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"],
})
FieldTypeDescription
crmContactIdstring[]List of contact IDs to include in this session
sessions = client.campaigns.get_sessions(campaign["id"])

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.

# 1. Create contacts
contact_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 campaign
campaign = client.campaigns.create({
"name": "Q3 NPS Survey", "companyId": "YOUR_COMPANY_ID",
})
# 3. Add a session with both contacts
session = client.campaigns.create_session(campaign["id"], {
"crmContactId": [contact_a["id"], contact_b["id"]],
})
# 4. Later: pull all feedback for this campaign
feedbacks = client.campaigns.get_sessions_feedbacks(campaign["id"])