Skip to content

Set the product plan on contacts from paid line items (payments and invoices)

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

Professional

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

Contact7 stepsUpdated for HubSpot seat pricing
OutcomeEvery paying contact carries the plan they actually bought and the date it started, read from the line items behind their payment or invoice, so segmentation and onboarding stop relying on a rep remembering to set the field by hand.
Workflow mapdata-quality-050
Contact has a paid payment or invoice leads to Custom code: associations to line items to products. Custom code: associations to line items to products leads to result_code. result_code leads to found: Set Product plan, Plan start date, source; not_found: Set source = Not found; error: Create task for the operations owner. found not_found error Contact has a paid payment or invoice Custom code: associations to line items to products result_code Set Product plan, Plan start date, source Set source = Not found Create task for the operations owner
Contact has a paid payment or invoice leads to Custom code: associations to line items to products. Custom code: associations to line items to products leads to result_code. result_code leads to found: Set Product plan, Plan start date, source; not_found: Set source = Not found; error: Create task for the operations owner. Contact has a paid payment or invoice Custom code: associations to line items to products result_code found Set Product plan, Plan start date, source not_found Set source = Not found error Create task for the operations owner

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

When to use it, when not to

Use it

  • Use it when you collect money inside the CRM through payments or invoices, and the plan a customer bought is visible on the line items attached to that payment or invoice.
  • Use it when marketing and service need plan-level segmentation (upgrade campaigns, plan-specific onboarding, plan-specific SLAs) and the plan today lives only in the billing system.
Read more on when to use itShow less

Skip it

  • Do not use it when billing happens entirely in an external system with no payment or invoice records synced into the CRM. In that case, sync the plan as a contact property from the billing system directly, and skip the workflow.
  • Do not use it as your revenue source of truth. It copies a label for segmentation. Amounts, proration and refunds stay in the billing system.
Read more on when to skip itShow less

The rest of this spec

Prerequisites · 7 items

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

Enrollment · 6 parts

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

Steps · 7 numbered actions

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

Known pitfalls · 6

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

Test plan and UAT script · 5 cases, 4 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 Data quality 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