Offer configuration stays visible
Use Offers to decide what Intercom receives: product, price, buyer, checkout mode, invoice, and automation context.

Product surfaces
Integrations work best when the checkout surface, payment state, invoice record, and post-purchase automation all point at the same commercial object. These product screens show the Plandalf controls that should be configured before Intercom receives checkout, payment, tax, or workflow context.
Use Offers to decide what Intercom receives: product, price, buyer, checkout mode, invoice, and automation context.
Before Intercom enters the stack, operators still need checkout templates, products, prices, coupons, order bumps, upsells, and branded offer content they can inspect.
Intercom should fit into the work after checkout: fulfilment, records, CRM updates, support context, webhooks, and sequences.
Intercom blends live chat, outbound email, and in-product messaging. For promo enrolment the relevant surface is its Series product — a visual workflow with rule-based entry and optional webhook steps.
<img> tag with Intercom’s
{{ email }} attribute renders per recipient.Setup templates
Copy-paste setups for the most common ways to wire Intercom into Plandalf.
promo · email
In the Intercom email editor, paste this <img> tag into an HTML
block. {{ email }} is Intercom's attribute token — it substitutes
the recipient's email address at send time.
<img
src="{{ promo.countdown_url }}?ref={{ email }}"
alt="Time remaining on this offer"
/>
promo · automation
{{ promo.catch_url }}
POST, body:
{"email": "{{ email }}", "ref": "{{ email }}"}
Automation graph
How Intercom participates in Plandalf sequences: what events it exposes upward, and what actions Plandalf can perform on it.
Events Plandalf can subscribe to through webhooks, API work, checkout state, payment context, and connected integrations.
intercom.subscriber_addedintercom.automation_step_reachedThings Plandalf sequences can do after checkout, payment, invoice, customer, or deadline events.
intercom.add_subscriberintercom.tagintercom.send_emailintercom.start_automationintercom.create_dealintercom.custom_api_callEmbeddable surfaces: Plandalf countdown image and buy button HTML · Per-recipient countdown GIF with merge-tag substitution
trigger: stripe.payment_succeeded
actions:
- intercom.add_subscriber:
list: paying-customers
tag: tier-${plan}
- plandalf.grant_entitlement: ${product_slug}Pair it with
Platforms whose roles complement Intercom inside a Plandalf sequence.
Intercom + ActiveCampaign
Compose Intercom and ActiveCampaign programmatically via the Plandalf SDK.
Intercom + beehiiv
Compose Intercom and beehiiv programmatically via the Plandalf SDK.
Intercom + Kit (ConvertKit)
Compose Intercom and Kit (ConvertKit) programmatically via the Plandalf SDK.
Intercom + Customer.io
Compose Intercom and Customer.io programmatically via the Plandalf SDK.
Intercom + Drip
Compose Intercom and Drip programmatically via the Plandalf SDK.
Intercom + Flodesk
Compose Intercom and Flodesk programmatically via the Plandalf SDK.
Integration methods
Each method below is the minimum viable setup. Pick the one closest to how you already use Intercom with checkout, payments, invoices, webhooks, API work, SDK checkout, and integrations.
Drop the Plandalf embed script into a Intercom HTML block and tag any element with `data-plandalf-present` to open the configured flow on click.
<script src="https://cdn.plandalf.com/embed.js" async></script>
<button data-plandalf-present="offer_abc123">
Buy now
</button>Add an HTML block to any Intercom email and paste the Plandalf countdown URL. Intercom's merge tag `{{ contact.email }}` substitutes per recipient so each subscriber sees a timer pegged to their own deadline.
<img
src="https://cdn.plandalf.com/timers/{TIMER_ID}.gif?ref={{ contact.email }}"
alt="Time remaining on this offer"
width="600"
height="120"
/>Inside Intercom's automation builder, add a Webhook step that POSTs the contact to a Plandalf sequence catch URL. Use this to mirror Intercom journey logic into Plandalf without re-building the segmentation.
{
"email": "{{ contact.email }}",
"sequence": "post-signup-onboarding",
"source": "intercom"
}For anything not covered by a native trigger, configure a Intercom webhook to POST to Plandalf. The payload is forwarded into the sequence as `${event}`.
curl -X POST https://api.plandalf.com/v1/webhooks/intercom \
-H "Authorization: Bearer $PLANDALF_API_KEY" \
-H "Content-Type: application/json" \
-d @event.jsonFAQ
Plandalf itself is free to connect. Intercom's native webhook step is on its paid tiers — on the free plan, route the trigger through Zapier instead, which still works end-to-end.
Under 10 minutes. OAuth (or paste an API key), pick the lists/segments you care about, and you're live. No code unless you want it.
Yes. Disconnecting only revokes the credentials — historical events Plandalf fired stay in your sequence logs, and Intercom's own records are untouched. You can reconnect any time and resume from the last seen event.
Plandalf stores the minimum IDs needed to address a record in Intercom plus a log of events Plandalf fired. Source-of-truth data stays in Intercom.
Use the generic `intercom.custom_api_call` action or the inbound `intercom.webhook` trigger. Anything Intercom's REST API can do, a Plandalf sequence can drive.
Plandalf respects Intercom's API rate limits and backs off on 429s. For very high-volume use cases, ask about a dedicated worker pool.
Intercom's homepage at https://www.intercom.com links to their developer docs. For Plandalf-side questions about the Intercom integration, see the Plandalf docs.