Skip to content

Custom object campaign/event attribution rollup to contact

One of 565 written HubSpot workflow specs, by a collective of independent HubSpot consultants.

Enterprise

Seat pricing: Enterprise edition. To build it, a GTM Seat or an Ops Seat (an Ops Seat cannot create marketing emails or sequences). Per-hub plans: Marketing Hub Enterprise.

Custom5 stepsUpdated for HubSpot seat pricing
OutcomeContacts show which HubSpot campaigns actually touched them and how many times, directly on the record, without anyone cross-referencing engagements against the Campaigns tool by hand.
Workflow mapmarketing-ops-031
latest_campaign_engaged changes leads to Custom code: create Campaign Touch record, recount. Custom code: create Campaign Touch record, recount leads to result_code ok?. result_code ok? leads to Yes: Set campaigns_touched_count; No: Notify marketing ops of logging failure. Set campaigns_touched_count leads to Set primary_campaign. Yes No latest_campaign_engaged changes Custom code: create Campaign Touch record, recount result_code ok? Set campaigns_touched_count Notify marketing ops of logging failure Set primary_campaign
latest_campaign_engaged changes leads to Custom code: create Campaign Touch record, recount. Custom code: create Campaign Touch record, recount leads to result_code ok?. result_code ok? leads to Yes: Set campaigns_touched_count; No: Notify marketing ops of logging failure. Set campaigns_touched_count leads to Set primary_campaign. Yes No latest_campaign_engaged changes Custom code: create Campaign Touch record, recount result_code ok? Set campaigns_touched_count Set primary_campaign Notify marketing ops of logging failure

When to use it, when not to

Use it

  • Use when you run several parallel campaigns and need "campaigns touched" visible on the contact record itself, not only inside the Campaigns tool's own reporting.
  • Use when native first-touch and last-touch properties alone are not enough to see the breadth of campaign engagement for a contact.
Read more on when to use itShow less

Skip it

  • Do not use if you only run one or two campaigns at a time. The native Campaigns tool's own reporting already answers "who did this campaign reach" without a custom object.
  • Do not use without Marketing Hub Enterprise. This fiche depends on a custom object and a custom coded action, both Enterprise-tier or Data Hub-gated capabilities. A Professional-tier substitute is in Variants.
Read more on when to skip itShow less

The rest of this spec

Prerequisites · 5 items

Every property with its label, internal name, type and options, plus the assets the workflow needs.

Enrollment · 4 parts

The trigger, the criteria as ticked in the UI, the re-enrollment rule and the suppression list.

Steps · 5 numbered actions

Each action in order with its parameters, branches and delays.

Known pitfalls · 4

Traps seen in production, each with what breaks and what to do instead.

Test plan and UAT script · 4 cases, 3 variants

How to prove it works in a test portal, one case per branch, and a sign-off sheet.

Files · PDF, Markdown, JSON, CSV, code

The properties JSON creates the fields in one call. The workflow JSON documents the build. The custom coded action ships as a ready-to-paste .js file.

Install · 1 click, switched off

The installer creates the properties and the workflow, switched off, then opens a task for what it cannot create. Nothing is deleted, enabled or enrolled.

Unlock all 565 specs, 149 EUR

One-time, excl. VAT. 30-day refund. Installs in 3 portals. Founding price until 30 November.

Read the free Marketing ops spec

Read 12 complete specs before you pay.

One per category, same format as the paid ones. Email only, no card.

We email the link, then a short note when specs change. Nothing else.

149 EUR199

Full library, 565 specs
Get the full library