Event signal:trial.ending| Destination:Intercom| Use case:Trial Expiry Notifications| Typical setup:~15 minutes
Workflow outcome
The workflow starts with trial.ending in your app and ends with Intercom holding the tag that puts the right trial-expiry message path in motion.
The point is not just to add a tag. It is to make the conversion signal visible and reliable enough that the right message flow can start while the user still has time to act.
Why teams care
Trial-expiry outreach works best when it reflects what the user is actually doing in the product, not when a generic timer says some number of days passed.
Intercom is often where the human-facing message or segment lives, but it still needs the source event to arrive on time and on the right contact.
If the tag handoff fails silently, the conversion window closes before anyone notices. That is why retries and delivery visibility matter even for a seemingly simple tagging rule.
What it depends on
These pages stay focused on the workflow outcome, but the setup still needs the right workspace, destination connection, and event path underneath.
You need a workspace and publishable key so your product can emit trial.ending.
Authorize Intercom in Meshes and confirm the contact tags you want to use are available.
Read moreDecide whether you want one general trial-ending tag or a small set of tags that reflect plan interest or engagement level.
Your product needs to send trial.ending with the identity and conversion context Intercom should react to.
The source event
Intercom tagging is simpler than a CRM property update, so the event fields mostly matter for identifying the right contact and deciding what kind of trial-ending context the tag should represent.
Event payload
trial.ending{
"user_id": "usr_8803",
"email": "maria@lighthouse.io",
"trial_end_date": "2026-03-24",
"plan_viewed": "growth",
"days_active": 11
}What matters most
Primary identifier for finding the right Intercom contact.
user_id
Useful as an internal or external reference when you debug contact matching later.
trial_end_date
Adds the timing context behind the trial-ending signal.
plan_viewed
Helps you choose whether the tag should reflect likely upgrade intent.
days_active
Useful when you want trial-ending outreach to reflect engagement level, not just a calendar date.
Field mapping view
| Event field | Destination target | Why it matters |
|---|---|---|
| Intercom contact lookup | Makes sure the tag lands on the right user record. | |
| user_id | Optional external reference | Useful when your team correlates Intercom contacts back to the app user record. |
| trial_end_date | Tag timing decision | Explains why the user is being tagged now rather than later. |
| plan_viewed | Tag naming or segmentation input | Lets the downstream message flow reflect the plan the user showed interest in. |
| days_active | Engagement-aware tagging strategy | Helps distinguish highly active trial users from lightly engaged ones. |
The destination connection
In your Meshes workspace, connect Intercom and decide which tag should represent the trial-expiry state. A simple, clear tag strategy makes the Meshes rule easier to understand and keeps the product event tightly connected to the downstream message path.
Where Meshes matters
Most teams do not need another destination. They need the destination to stay in sync without embedding its delivery quirks, retries, and mapping logic into the product code path.
In Meshes, bind trial.ending to an Intercom Add Tag rule and choose the tag that should represent the trial-expiry state. Keep the rule focused on the handoff into Intercom and let Intercom own the downstream message logic that watches for that tag.
A sample event
This is the part teams like: the source event stays readable and product-shaped while Meshes owns the destination-facing complexity.
TypeScript example
import MeshesEventsClient from '@mesheshq/events';
const events = new MeshesEventsClient(process.env.WORKSPACE_PUBLISHABLE_KEY!);
await events.emit({
event: 'trial.ending',
payload: {
user_id: 'usr_8803',
email: 'maria@lighthouse.io',
trial_end_date: '2026-03-24',
plan_viewed: 'growth',
days_active: 11,
},
});Destination outcome
Use Send Test Event in Meshes or send a trial.ending event, then verify the Intercom contact receives the expected tag. Once the tag exists, Intercom can take over with the message flow or segmentation you already configured there.
Operational visibility
The difference between a nice demo and a usable product workflow is whether you can see what happened when the destination is slow, misconfigured, or unavailable.
In Meshes
Why teams buy Meshes
What's next
Use Case
See the broader trial.ending fan-out pattern across messaging, CRM, and lifecycle systems.
Integration
Review the Intercom connection flow, add-tag action, and event result review.
Open linkDocs
Use the Meshes events API or SDK to emit trial.ending from the product.
Compare
Compare observable trial-expiry routing with maintaining timer jobs and tagging glue yourself.
Open linkGuide
See another conversion-adjacent workflow that pushes revenue context into Salesforce.
Open linkGuide
Route the earlier lifecycle signal into HubSpot so go-to-market data is already current before the trial ends.
Open link