For the complete documentation index, see llms.txt. This page is also available as Markdown.

Setup for Campaigns

Direct, Referral, Automation, Leaderboard, and Challenge campaigns each have their own Custom Fields schema — a field created for Direct campaigns doesn't appear on Automation campaigns, and vice versa. Set up each schema from Custom Fields, exactly as described in Setting Up Custom Fields.

Unlike Members, campaign-type modules don't support Subgroups — only simple fields (String, Number, Boolean, Date, Single select, Multi select).


Entering values

  • Every campaign wizard/editor (Direct, Referral, Automation, Leaderboard, Challenges) has a dedicated Custom Fields step. Required fields must be filled in before the campaign can be saved.

  • The values entered are repeated in the wizard's Summary step for review before publishing.

  • The Single Campaign View shows a Custom Fields section with the saved values, the same way member profiles do.


Custom fields in webhooks

Custom field data for a campaign is included in that campaign's created and updated webhooks, using the same group → field structure as the member API response. This means downstream systems (e.g. Salesforce, a BI pipeline) receive the campaign's custom attributes without a separate lookup call.


Via the API

The same read/write pattern used for members applies to campaigns: customFields in the campaign payload (POST adds, PUT replaces), plus a dedicated partial-update endpoint:

PATCH /api/{storeCode}/custom-fields/campaign/{campaignId}

The body uses the group → field structure; a field sent as null clears it, groups omitted from the payload are left untouched, and an unknown group returns a 400 validation error.

Was this helpful?