Skip to content
Salesforce managed package

Turn Salesforce into your Customer.io command center.

Real-time email engagement and website activity for every Contact, right where your team works. Two-way integration with Customer.io's Pipelines CDP and App API — no middleware, no external hosting.

  • Native Apex + LWC
  • US & EU regions
  • Security-review ready
Salesforce › Contact › Sarah Johnson
!
HOT Updated 14 sec ago

Sarah is actively job-shopping

Viewed /jobs/icu-tampa 4 minutes ago

Last Sent
2h
Last Opened
1h
Job Pages
3 today
Last View
4m
Recently viewed job pages
  • /jobs/icu-tampa4 min ago
  • /jobs/icu-orlando18 min ago
  • /locations/florida22 min ago
The problem

Customer.io knows. Salesforce doesn't.

Marketing has the signal. Recruiters and reps don't see it until it's too late.

Engagement signals are trapped in Customer.io

Your reps live in Salesforce. The data they need lives somewhere else — and reaches them as a weekly campaign export, if at all.

Recruiters miss high-intent moments

A nurse opens your campaign, clicks a job link, views three postings — and signs with another agency before anyone notices.

No candidate website activity in Salesforce

Stage changes, status flips, ownership transfers — operational truth that should personalize messaging is stuck in SOQL, never reaching the marketing tool.

The solution

Three pillars, one managed package

CIO Pipelines reads from Customer.io and writes to Customer.io — natively, inside Salesforce.

1 Inbound

Per-Contact Activity

A Lightning record-page panel showing email events, page views, KPI cards, and an engagement banner that updates the moment Customer.io reports new signal.

Read the deep-dive
2 Inbound

Recruiter Dashboards

Three list widgets (My / Team / Pipeline) plus four aggregate engagement banners. Drop them on any App, Home, or Tab page — scoped automatically by ownership and team.

Read the deep-dive
3 Outbound

Outbound CDP Integration

Configurable Apex triggers turn Salesforce DML into Customer.io identify, track, and group events. Field mappings, transformations, and filters are admin-controlled.

Read the deep-dive
Contact Activity Panel

Every Contact's Customer.io engagement, surfaced where reps work.

A Lightning record-page panel that shows the email events, page views, and KPIs that matter — driven by a colored banner that grades the strongest available signal.

  • Engagement banner — HOT / WARM / ENGAGED / QUIET driven by job-page views first, then email engagement.
  • Five KPI cards — Last Sent, Last Opened, Last Clicked, Job Pages Today, Last Page View.
  • Recently viewed pages classified by an admin-configurable URL substring list.
  • Sortable email datatable with sent / opened / clicked / bounced / unsubscribed events.
Full feature reference
CIO Pipelines: Contact Activity Read-only
WARM 3 hours ago

Marcus Chen is browsing your site — 4 job pages today.

Sent
2h
Opened
2h
Clicked
1h
Pages
4
View
3h
Recent job pages
  • /jobs/rn-houston3h
  • /jobs/rn-dallas5h
  • /locations/texas5h
Active Candidates Dashboard

Three list widgets, scoped automatically.

My shows what you own. Team uses your manager hierarchy, group, queue, or a custom strategy. Pipeline covers everything you can see via Salesforce sharing — with an optional unassigned pool.

  • Engagement scoring = recency × intensity × frequency, with job-page views weighted above email opens.
  • Auto-refresh at 30s, 60s, 5m, or 15m — or off, if you prefer manual.
  • No metadata changes — drag onto any Lightning page in App Builder, save, activate.
My Active Candidates ↻ 60s
  • HOT
    Sarah Johnson
    Viewed /jobs/icu-tampa 4 min ago
  • HOT
    Marcus Chen
    Viewed /jobs/rn-houston 22 min ago
  • WARM
    Priya Patel
    3 job pages today, last 2h ago
  • ENGAGED
    David Okafor
    Opened campaign yesterday
Engagement Banners

A single colored strip — instantly readable across the room.

Four aggregate banners (Contact, My, Team, Pipeline) render a one-line headline and a count. Drop them above any Lightning page or the App Home — recruiters see signal without opening anything.

  • Per-state message templates with {name}, {minutes}, {pageTitle} placeholders.
  • Eight per-state contact templates, nine aggregate templates — all editable in admin UI.
  • Per-banner color, icon, and click-through behavior.
HOT 5 of your candidates are browsing right now.
WARM 12 candidates on your team have opened a campaign in the last hour.
ENGAGED 34 candidates in pipeline engaged this week.
QUIET 87 candidates haven't engaged in 30+ days.
Outbound CDP

Salesforce DML, shipped to Customer.io as identify, track, and group events.

Apex triggers send Pipelines CDP events the moment Salesforce records change. Field mappings, filters, and transformations are configured in the admin UI — no Apex required.

  • Async by default — Queueable callouts never block the trigger transaction.
  • Five supported objects — Contact, Account, Lead, Opportunity, Case.
  • Visual filter builder — scope which records qualify per trigger.
  • Activity log with sanitized request/response bodies and configurable retention.
  • Platform Event retries on transient failures with admin-tunable backoff.
Salesforce │ Contact updated ▼ ┌─────────────────────────┐ │ Apex Trigger │ │ CIO_TriggerHandler │ └─────────────┬───────────┘ │ ▼ ┌─────────────────────────┐ │ IntegrationService │ │ · Load config │ │ · Evaluate filters │ │ · Build payload │ │ · Apply transforms │ └─────────────┬───────────┘ │ ▼ ┌─────────────────────────┐ │ Queueable Callout │ ──► CIO_Activity_Log__c └─────────────┬───────────┘ │ POST /v1/identify ▼ Customer.io Pipelines
Per-widget Settings

Industry-agnostic by configuration, not by feature flag.

CIO Pipelines ships with healthcare-recruiting-tuned defaults. Every label, message, KPI, URL pattern, and team scope is rewritable from the admin UI — without a deploy and without code.

  • Per-widget time window, max items, included engagement states, refresh cadence.
  • Configurable owner field — OwnerId by default, or any user-lookup like Recruiter__c.
  • Four team scope strategies — Manager Hierarchy, Public Group, Queue, All Users.
  • Configurable URL pattern for "what counts as a job page" — works for freight, listings, products.
CIO Pipelines: Settings · Banner Templates
{name} is actively job-shopping — viewed {pageUrl} {minutes} min ago.
{name} is reviewing freight options — viewed {pageTitle} {minutes} min ago — quote them now.
{name} is browsing listings — viewed {pageTitle} {minutes} min ago.
How it works

Three steps. Zero middleware.

Native Apex on the platform, native LWCs in the UI, the public Customer.io APIs at the edges. Nothing else in the data path.

1

Install & configure

Install the managed package, drop in your Customer.io API keys, pick your region. Five minutes.

2

Map fields, build triggers

Pick which Salesforce events become CDP identify / track / group events. Map fields. Add filters.

3

Drop widgets on Lightning pages

Open Lightning App Builder. Drag the Contact Activity panel and the recruiter widgets onto the canvas. Save and activate.

┌──────────────────────────────────────┐ │ SALESFORCE ORG │ └──────────────────────────────────────┘ │ ▲ OUTBOUND │ │ INBOUND │ │ ┌───────────────────▼─────────┐ ┌────┴───────────────────┐ │ Apex Trigger Layer │ │ Lightning Web │ │ IntegrationService │ │ Components Layer │ │ Queueable Callout │ │ ContactActivity │ │ Activity Log │ │ ActiveCandidates │ └───────────────────┬─────────┘ └────┬───────────────────┘ │ │ ▼ │ ┌──────────────────────────────────────┐ │ CUSTOMER.IO │ │ Pipelines CDP API App API │ │ (write) (read) │ └──────────────────────────────────────┘
Use cases

Built for recruiting. Configured for everything else.

Same Apex, same LWCs, same security model. The only thing that changes is the words.

Flagship Healthcare staffing & recruiting

Recruiters spot HOT candidates the moment they open a job page.

A nurse opens your "ICU openings" campaign, clicks through, views three job postings — and the recruiter sees a HOT row light up before the moment passes.

HOT 4 minutes ago

Sarah Johnson is actively job-shopping — viewed /jobs/icu-tampa.

Recruiting walkthrough
B2B Sales

AEs see when economic buyers re-visit pricing.

A 30-account named territory is a lot to keep tabs on. The Pipeline widget surfaces the buyers re-engaging with pricing, demo, and trial pages — the moment they do.

WARM 22 minutes ago

CFO at Northwind Health — viewed /pricing twice this week.

B2B walkthrough
E-commerce / DTC

Support reps see VIP customers before they answer a ticket.

Place the Contact Activity panel on the Case record page. Support sees whether the customer is a high-engagement repeat buyer or a one-time browser — before they reply.

ENGAGED 2 hours ago

Repeat customer — 6 product views today, 4 orders this year.

E-commerce walkthrough
For Customer.io

A Salesforce-native extension of Customer.io.

CIO Pipelines surfaces Customer.io data inside the Salesforce UI and ships Salesforce events into the Pipelines CDP — a two-way integration built natively on the public APIs as designed.

We're not a competitor. We're not asking you to integrate anything on your side. We've built on top of your APIs, we're seeing real demand in verticals where Customer.io has growth headroom, and we'd like to formalize the relationship.

Drives CIO adoption inside Salesforce

Every recruiter watching the dashboard sees Customer.io's signal in real time, every day. That story plays out internally and increases advocacy for the subscription.

Targets healthcare staffing & recruiting

Salesforce-deep verticals where Customer.io has growth headroom. We've built defaults specifically for the recruiter persona.

Two-way integration

Outbound via the Pipelines CDP API. Inbound via the App API. Public endpoints, documented patterns, no reverse-engineering.

Co-marketing potential

"Built for Customer.io" branding visible across the product. Joint case studies once we have the first 3–5 production deployments.

Security & Privacy

Architected for the AppExchange Security Review.

Strict sharing, FLS-enforced SOQL, encrypted credentials, constant-time HMAC, no dynamic SOQL injection surface. The package is auditable end-to-end.

Read the security architecture
CRUD/FLS enforced

WITH SECURITY_ENFORCED on all @AuraEnabled SOQL. isCreateable() / isUpdateable() gates on every DML.

Encrypted credentials

EncryptedText for both API keys. Subscriber admins see masked values; the unmasked key never reaches the browser.

Constant-time HMAC

Inbound webhook verification is timing-safe. Per-config secrets, no parser leaks, generic error responses.

No third-party data sharing

The only outbound HTTP traffic is to cdp.customer.io and api.customer.io (or their EU equivalents). No telemetry leaves the org.

Configurable retention

Activity log bodies retained 30 days by default (admin-tunable, 7-day floor). Daily purge batch ships in the package.

Strict sharing model

Every controller is with sharing. No class is without sharing. Service classes use inherited sharing.

Pricing

Per-org pricing. Sandbox is free.

Three tiers. Pick by event volume and support level. No per-user fees.

Starter

Single-workspace teams getting started.

[TBD] / month

Billed annually

  • 50,000 outbound CDP events/month
  • 1 Production org + unlimited sandboxes
  • 1 Customer.io workspace (US or EU)
  • All Lightning components included
  • Email support, 2-day response
Install in Sandbox
Most popular

Growth

Multi-workspace teams with higher event volume.

[TBD] / month

Billed annually

  • 500,000 outbound CDP events/month
  • Up to 3 Customer.io workspaces (US/EU)
  • Custom banner templates & branding
  • Field mapping & transformation library
  • Priority email + Slack support, 1-day
  • Quarterly Customer Success check-in
Talk to sales

Enterprise

Custom deployments, compliance, dedicated support.

[TBD] / contact us

Annual or multi-year

  • Unlimited outbound CDP events
  • Multiple Production orgs & workspaces
  • Custom Apex extensions & mappings
  • Dedicated Slack with engineering
  • SOC 2 questionnaire support, custom DPA
  • 99.9% callout uptime SLA
Contact us

All tiers include the full Lightning UI, the outbound CDP integration, every per-widget admin setting, and free sandbox installs.

Ready when you are

Put Customer.io's signal where your team works.

Install in your sandbox in five minutes. Configure your first event trigger in another five. Drop the widgets on your Lightning pages, and watch the engagement signal show up.