Plan Changed Webhook
The company.plan_change webhook is one of the most important triggers for building sales and customer success workflows. It fires whenever a company’s plan changes, whether an upgrade, downgrade, or the end of a trial period.
Some common use cases for company.plan_changed webhook include:
- Identifying PLG upgrades: Automatically notify your team or trigger automations when a self-serve customer upgrades their plan, so you can reach out to nurture and support the account.
- Tracking trial conversions and endings: Get alerted when a company’s trial ends, enabling you to follow up or offer interventions to encourage conversion.
- Catching downgrades: Proactively inform Customer Success (CS) when an account downgrades, giving your team a chance to understand any pain points and try to save the account.
By listening for the plan_changed webhook, you can automate account lifecycle tasks and keep key teams informed about important moments in your customer journey.
Setup
The company.plan_change webhook is set up like all other webhooks in Schematic. Please follow the general webhook setup instructions to create an endpoint and select the company.plan_changed trigger.
Fields
All Schematic webhooks are strongly typed in each of our SDKs.
Here is that type for our node.js SDK for reference.
A plan can change for many reasons, the most common ones are:
- A company proactively changes it’s plan (either an upgrade or downgrade)
- A company is on a trial that ends, and is moved to the trial expiry plan
- A company is newly created and is put on the Initial Plan
- A company fails to pay it’s bills, and is moved to the fallback plan
To determine the cause of a plan change, there are four relevant fields provided in each webhook response:
- Action
The Action provides an explanation for what action changed the company’s plan.
In SDKs, this field is called PlanChangeResponseDataAction, whereas in the raw webhook response, it can be found at body.action.
- Actor Type
The Actor Type provides “who” took the action that lead to the plan change.
In SDKs, this field is called PlanChangeResponseDataActorType, whereas in the raw webhook response, it can be found at body.actor_type.
- Base Plan Action
The Base Plan Action value indicates why the base plan was changed. This field is often left blank.
In SDKs, this field is called PlanChangeResponseDataBasePlanAction, whereas in the raw webhook response, it can be found at body.base_plan.action.
- Subscription Change Action
The Subscription Change Action indicates whether the plan change is an upgrade, downgrade, or something else. Currently, a plan change is an “upgrade” if the newer plan has a higher base price; “downgrades” are determined inversely.
In SDKs, this field is called PlanChangeResponseDataSubscriptionChangeAction, whereas in the raw webhook response, it can be found at body.subscription_change_action.