Skip to main content
A Campaign is the primary organizational object for configuring and sending gifts. It acts as a reusable template that defines all the settings for a gifting activity - including the gift type, budget, branding, notification messages, and billing. Every gift in Snappy must be created within a Campaign.
Want to understand how Campaigns fit into the bigger picture? Check out the Core Concepts & Data Models page.

The Campaign Object

FieldTypeDescription
idstringUnique identifier for the Campaign
namestringDisplay name of the Campaign
statusstringCurrent status of the Campaign. See Campaign Statuses below
typestringCampaign type. Possible values: anniversary, birthday, schedule, marketing, oneOffs, newHire. The API only allows creating oneOffs - other types are created via the Snappy Dashboard.
sourcestringIndicates how the Campaign was created (e.g. dashboard, dashboard_ai, api_native, api_zapier, api_make, api_salesforce, api_ftp)
accountIdstringThe ID of the Account this Campaign belongs to
companyIdstringThe ID of the Company this Campaign belongs to
accountobjectEmbedded Account summary containing id and name
customizationobjectGift Customization configuration including giftProperties, notificationPolicy, and recipientExperience. See Core Concepts & Data Models → Gift Customization
createdAtstringISO 8601 timestamp of when the Campaign was created
updatedAtstringISO 8601 timestamp of the last update

Campaign Statuses

StatusDescription
draftThe Campaign is being configured and is not yet ready to send gifts
pendingThe Campaign is awaiting activation (typically a Dashboard approval step)
scheduledThe Campaign is scheduled to activate at a future date
activeThe Campaign is live and gifts can be created under it
liveEquivalent to active for some Campaign types (Dashboard-driven)
pausedThe Campaign has been temporarily paused. No new gifts can be created
sentAll gifts in the Campaign have been sent (terminal state for one-off sends)
archivedThe Campaign has been archived. No new gifts can be created

Key Concepts & Business Rules

Every gift requires a Campaign

A Campaign must exist before any gifts can be created. It provides the context, budget, and configuration for every gift sent within it.

Collection or Product - not both

A Campaign is configured with either a Collection (recipient chooses from a catalog) or a specific Product (a predetermined item). These are mutually exclusive - you cannot assign both to the same Campaign.

Billing Method

Each Campaign is assigned exactly one Billing Method at creation. This is the funding source that will be debited each time a gift is sent under this Campaign. If the Billing Method has insufficient funds, gift creation will fail. When a Campaign is created via the API, it is automatically assigned the Account’s default Billing Method. When created via the Dashboard, you can select any active Billing Method on the Account.

Gift Customization inheritance

Campaigns inherit Gift Customization defaults from their parent Account and Company. Any settings defined at the Campaign level override the Account defaults and apply to all gifts created under this Campaign, unless overridden again at the individual Gift level.
See Core Concepts & Data Models → Gift Customization for the full inheritance model.

How to Work with Campaigns

Create a Campaign Campaigns can be created via the Snappy Dashboard or programmatically via the API. For most use cases we recommend creating Campaigns in the Dashboard, where you can configure Gift Customization settings visually and preview the recipient experience.
POST /v2/campaigns
Retrieve Campaigns To retrieve a list of all Campaigns available to your API key:
GET /v2/campaigns
To retrieve a specific Campaign by ID:
GET /v2/campaigns/{campaignId}
Update a Campaign Campaign settings can be updated after creation. Changes to Gift Customization settings apply only to gifts created after the update - previously created gifts are not affected.
PATCH /v2/campaigns/{campaignId}
Estimate the Campaign Cost Before launching a Campaign, you can retrieve an estimated cost based on the configured budget and a target number of gifts:
GET /v2/campaigns/{campaignId}/estimatedCost
Last modified on June 18, 2026