Product Signals: Using Custom Events in Unify

Last updated: April 29, 2026

What are custom events?

Custom events are actions your users take inside your product or on your website that you track and send to Unify. When an event fires — a user hitting a paywall, completing onboarding, inviting a teammate — Unify captures it and makes it available to trigger Plays, build Audiences, and surface buying signals for your sales team.

Custom events work through three ingestion methods:

  • PostHog integration (recommended, ~10-minute setup)

  • Segment forwarding

  • Unify JS/React SDK (for teams without PostHog or Segment)


How to set up custom events

Via PostHog

  1. In Unify, go to Settings → Integrations → Web & Product Data.

  2. Click "Connect with PostHog."

  3. In PostHog, navigate to Data & Destinations, find the Unify destination, copy the routing key from Unify, and paste it in. Click Create and Enable.

  4. Use Event Matcher in PostHog to select the specific events you want to forward to Unify (e.g., paywall_hit, upsell_flow_started, feature_activated). Add filters to exclude internal users. Start with 3–4 high-signal events.

  5. Events start flowing within ~5 minutes. Use the Test Function button in PostHog (green icon = success) to confirm.

  6. Open the Event Console in Unify (Data → Event Console) to confirm events are flowing and attached to the right contacts.

📖 PostHog Integration Docs

Via Segment

If your team uses Segment instead of PostHog, events can be forwarded directly to Unify via the Segment integration — no new code required beyond enabling the forwarding destination.

📖 Segment Integration Docs


Using custom events in Plays and Audiences

Once events are flowing, you can use them in two places:

  • In Plays: In the Play builder, select "Custom Event" as your trigger. Use Filters V2 to filter on event properties (e.g., plan = free, event = paywall_hit). When the condition is met, Unify automatically enrolls the contact, kicks off a sequence, or creates a rep task.

  • In Audiences: In the Audience builder, add a condition → Website Activity → Custom Event → enter the event name. This creates a reusable segment for prospecting, campaigns, or sequences.


Inspiration: Custom events by use case

PLG / Free Trial

Goal: Identify which free users are ready to convert or champion an enterprise sale.

Signal

What it means

User hits free-tier credit/token limit

Bumping against the paywall — highest-intent conversion signal

User completes X key actions (e.g., 10th video, 5th workflow)

Power user showing deep engagement

User invites a teammate

Product gaining traction in the org, team plan opportunity

User connects a third-party integration

Investing in the product, building it into their workflow

Free trial user visits pricing page

Actively evaluating, comparing plans

User completes onboarding

Engaged enough to finish setup, warm window

User enters a credit card

Strongest buying signal available

User logs in 5+ times

Habitual usage, dependency forming

Sales-Led / Website Intent

Goal: Get person-level understanding of who is on your website and what they're looking for.

Signal

What it means

Visitor drops off mid-form fill

Had intent but didn't complete — recoverable pipeline

Visitor downloads a whitepaper or signs up for newsletter

Researching the space, early-stage intent

Specific person visits pricing page

Evaluating seriously — person-level, not just company

Visitor clicks on a specific pricing plan

Budget signal — you know which tier they're considering

Visitor engages with product tour

Self-educating, warm lead

Visitor views case study or developer docs

Deep research, high buying intent

Expansion / Upsell

Goal: Know when existing customers are showing signals for a bigger plan.

Signal

What it means

Account adds 5+ seats

Growing usage, upsell timing

User visits Usage or Billing page frequently

Evaluating whether their current plan is enough

Daily login streak (10+ days)

Deeply embedded — retention and expansion signal

User clicks "Get Help" repeatedly

Struggling but invested, potential for white-glove upsell

Multiple in-app purchases

Revenue expansion happening organically


Common pitfalls

  • Play triggers run on ~15-minute polling, not real-time. Additionally, audience/criteria updates can take 15–30 minutes to fully propagate, and delays may be longer after large changes or bulk enrollments. This means the total delay from when someone enters an Audience to when a Play enrolls them can be 30–45 minutes under normal conditions.

  • Identity resolution requires identify() calls. Anonymous events won't resolve to contacts unless your instrumentation includes an identify() call (e.g., on login). Confirm this during setup.

  • One ingestion source per event type. Avoid forwarding the same event from both Segment and PostHog — this causes duplicates.

  • Amplitude, Mixpanel, and Pendo are not supported at GA. Customers on those tools should use the Unify intent client instead.


FAQs

Does this replace PostHog or Segment as my analytics tool?

No. The integration forwards a copy of the events you select — PostHog or Segment remains your product analytics source of truth. Unify uses those events to power Plays and Audiences.

How long until events start flowing after setup?

Client-side events typically appear in the Event Console within a few minutes. If events aren't showing up after 15–20 minutes, check the Event Console for attribution issues or misconfigured event names.

Do Plays trigger in real time?

Plays trigger within 15 minutes of the event happening.

My customer uses Amplitude or Mixpanel. Can they use this?

Not currently. Amplitude, Mixpanel, and Pendo are on the roadmap but not supported at GA. Log the request in Pylon and recommend they wait for native integrations.


Resources