graph8 Data Pipelines ingest events from any source, run JavaScript transformations as data flows through, enforce a schema you control, and resolve every anonymous touch to a single buyer record. The result powers every workflow, campaign, segment, list, report, and sequence inside graph8.
anonymousId: abc_8f2 Page Viewed
url: /pricinganonymousId: abc_8f2 Form Submitted
traits.email: [email protected]userId: usr_7e3 Identify
merged anonymousId abc_8f2 to usr_7e3userId: usr_7e3 Pricing Plan Viewed
plan: pro . seat_count: 6userId: usr_7e3 Demo Booked
workflow.high_intent to sequencer.drewEvents arrive from any source. Transformations clean and enrich them on the wire. The CDP unifies identity and writes one canonical record. Every surface inside graph8 reads from the same record, in real time.
500+ connectors, SDKs, and webhooks ingest events from your stack.
JavaScript runs on every event. Filter, enrich, route, redact.
Unify identity, enforce schema, write the canonical record.
Trigger workflows, campaigns, segments, lists, reports, sequences.
A function runs against every event as it flows through. Filter bots, enrich from email domains, redact PII, route to specific destinations. Versioned, tested, replayable. No batch jobs, no nightly cron, no extra warehouse.
export default function transform(event) {
if (/bot|crawler/i.test(event.context?.userAgent || "")) {
return null
}
if (event.traits?.email) {
event.properties.company_domain =
event.traits.email.split("@")[1]
}
if (event.event === "Demo Booked") {
event.destinations = ["workflows", "sequencer"]
}
return event
} {
"userId": "usr_7e3",
"event": "Demo Booked",
"traits": { "email": "[email protected]" },
"context": { "userAgent": "Mozilla/5.0..." }
} {
"userId": "usr_7e3",
"event": "Demo Booked",
"traits": { "email": "[email protected]" },
"properties": { "company_domain": "northwind.io" },
"destinations": ["workflows", "sequencer"]
} Every function has a history. Replay any window of events through an old or new version.
Run any function against last 100 events live, see diffs, then publish.
Redact, hash, or drop fields before they ever land in the warehouse.
Declare the events your team can send and the shape they must match. The pipeline rejects events that violate the schema before they reach your CDP or warehouse, with a full log of what was blocked and why.
| Property | Type | Required | Rule |
|---|---|---|---|
| event | string | always | enum: 12 named events |
| userId | string | if known | stitched to anonymousId on identify |
| properties.url | string | for Page* | must be a relative or absolute URL |
| properties.plan | string | optional | enum: free | pro | enterprise |
| properties.price | number | for revenue | must be number, not string |
| context.userAgent | string | optional | blocked if bot or crawler match |
{
"event": "Order Completed",
"properties": {
"price": "$49.00"
}
} Rejected. properties.price must be number, got string.
No warehouse write. No downstream sync. Logged for replay once the producer is fixed.
See where schema enforcement runsThe pipeline stitches every identifier the same buyer leaves behind, across devices, sessions, and channels, into a single record on the buyer graph. Anonymous visits before signup keep their history once an identity is known.
Anonymous web visitanonymousId: abc_8f2
Form submitemail: [email protected]
Inbound callphone: +1 415 555 0136
VP Revenue . Northwind
One record. Every signal counts. Every history kept.
url: /pricing
captured email
stitched anonymousId to usr_7e3
plan: pro
routed to workflows and sequencer
Once a buyer is unified, Tailor injects HTML on your live pages per segment. Personalize a hero, swap a CTA, hide a banner. No CMS edit, no new build. The page transforms in the same pipeline that transforms the data.
700M+ contacts, on the house. Search anyone.
Get startedwhen segment matches "high-intent . enterprise" inject hero-enterprise.html into [data-tailor=hero]
Pro plan modeled on Northwind's 6-seat roster. Join the next demo.
Join DemoInject into any element by selector. Marketing controls the variant without touching code.
Rules read from the same unified record. Audiences from the CDP, applied to the page.
Every variant emits its own events back into the pipeline. Lift shows up in reports.
Chat, forms, the tracking snippet, the newsletter widget, Tailor, the voice widget. Flip any of them on or off, scope to an audience, scope to a route, or scope to a launch. The CDP decides what shows up.
Web chat
Live chat widget on your site
Forms
Inline and popup form capture
Tracking snippet
Identify and page events
Newsletter widget
Email subscribe block
Tailor
HTML personalization on the page
Voice widget
Click-to-call from your site
Conditions compose. Show chat to high-intent on /pricing during the Q3 launch only.
Flip a surface from the workspace. The change reaches every page in seconds.
500+ source connectors across CRM, databases, payments, analytics, support, e-commerce, productivity, and HR. Destinations include every major warehouse and reverse-ETL target.
500+ live source connectors. Every major warehouse. Webhooks, Zapier, Make, and reverse ETL.
Browse the full catalogThe same unified record drives every surface. Update the CDP and every downstream surface reflects it instantly. No second source of truth, no sync lag.
Any signal becomes a trigger. Automation fires the moment data lands.
Personalize every message from the unified buyer view, no copy-paste.
Live segments rebuild as new data arrives. No nightly cron, no stale audiences.
Saved lists stay current with every refresh. Hand them to a sequence in one click.
Pipeline, funnel, and source mix update in real time from the same record.
Outbound cadences read freshness from the CDP and pause when a deal moves.
Data Pipelines feed the buyer graph: the live record of every account, contact, signal, and conversation. Agents read and write to the same graph. Apps render from it. Reports run against it.
The pipelines are the plumbing. The graph is the picture. The agents are the work. You get one unified system instead of a stack glued together by exports and CSVs.
Execution credits send, call, and run agents. Contact credits reveal and enrich the people you target. Three ways in.
A free entry point to the full platform. No credit card.
Unlimited contact data, in the tools you already use.
Unlimited users and data. Every app, one bill.
The $99 Team plan is the full platform: everything below, for the whole org. MCP Unlimited and Pay as you go are lighter entry points with usage and seat limits.
Execution credits send, call, and run agents. Contact credits reveal and enrich the people you target.
Pipe any source into your CDP, transform on the wire, and unify identity. Then trigger workflows, campaigns, and reports from one buyer record. Pay for execution, not seats.