What plugs into the hub.
We operate connectors by category, never by logo. What matters is the capability a system provides and the canonical records it yields — which is why swapping vendors inside a category is a configuration change here, not a migration.
Twelve capabilities. Seven record types.
Every category resolves into the same small set of canonical record types. That constraint is the whole trick: the schema stays small while the connector count grows.
Inbound calls, attributed
Ring events, answered calls, talk time, recordings metadata and dynamic-number attribution — resolved to a single caller identity in E.164.
lead messageQueries, positions, clicks
Query-level impressions and clicks, ranking movement by page and market, and crawl-health signals — joined to on-site behaviour instead of living in a separate tab.
sessionSessions and engagement
Sessions, engaged time, channel and campaign dimensions, key events. Identity stitching to a canonical record happens in the hub, not in the analytics tool.
sessionContacts, deals, stages
Contacts, opportunities, stage transitions with timestamps, owner assignment and won/lost outcomes — the revenue end of every attribution question.
lead dealSends, opens, replies
Campaign sends, delivery outcomes, engagement events and reply threads, keyed to the same contact identity as calls and deals.
messageSpend, clicks, conversions
Daily cost by campaign and ad group, click and impression volume, platform-reported conversions — normalized to minor units and a single currency per hub.
spend sessionOrders and line items
Orders, line items, refunds, fulfilment status and customer identity — reconciled against finance so revenue means one thing across the business.
orderInvoices and payments
Issued invoices, payment events, credits and ageing. The connector that turns "closed-won" into "actually paid", which is a different number and everyone knows it.
order spendTickets and resolution
Ticket creation, first-response and resolution times, reopen rates and satisfaction scores — attached to the same customer record as the sale.
ticketStock and fulfilment
On-hand quantity by location, movements, backorders and shipment events — so a sales dashboard can stop promising what the warehouse cannot ship.
orderAppointments and shows
Bookings, reschedules, cancellations and no-shows with technician or rep assignment — the missing half of every field-service funnel.
lead messageReviews and responses
New reviews by location, rating movement and response latency — normalized across sources so a multi-location rollup is one query, not nine exports.
messageWhat is actually inside a connector.
Five parts, every time. When we say "we build the connector", this is the thing we build — and then keep running.
| Part | Responsibility |
|---|---|
| Auth | Holds the scoped credential by reference, refreshes tokens before expiry, drives rotation and re-consent, and halts the connector rather than retrying into a lockout. |
| Listener | Polls on a declared cadence or receives webhooks, always in closed time windows so a missed window can be replayed exactly rather than approximately. |
| Mapper | Translates upstream field names to canonical field names. Version-controlled, reviewed, and diffable — a mapping change is a code change with a pull request. |
| Normalizer | Enforces types, units and formats, applies conflict-resolution rules, and dead-letters anything it cannot honestly convert. |
| Monitor | Watches window closure, error rate and record yield against expectation; degrades the connector, fires the webhook and pages a human. |
If it has an API, it can join the flow.
Industry systems, regional platforms, the twenty-year-old ERP with a SOAP endpoint and a PDF manual — we have joined stranger things to the hub. Median new-connector build is two weeks from stack walkthrough to first backfilled record.
- Week 0 — stack walkthrough, endpoint review, scope and credential plan agreed in writing.
- Week 1 — listener and mapper built against a sandbox or a read-only production scope; canonical mapping reviewed with you.
- Week 2 — backfill runs throttled, monitor thresholds tuned, connector goes live and starts counting as active.
- Ongoing — it is ours to keep running. Upstream breaking changes are our incident, not your surprise.
Public or partner API docs, a sandbox or a scoped read credential, and one person who can answer "what does this field actually mean" when the docs are wrong.
A named connector in your portal, a mapping table you can read, backfilled history, and the same monitors every other connector gets.
Scheduled file drops (SFTP, CSV, fixed-width) are a supported listener type. Screen scraping is not — it breaks silently, and silent breakage is the thing we sell against.
We tune cadence to the limit rather than fighting it, and tell you plainly what freshness that buys. A 15-minute promise we can keep beats a real-time promise we cannot.
Every connector, on one strip.
This is the shape of the fabric-health view — nodes pulse as their sync windows close, packets ride the edges into the hub, and anything degraded rings amber with a plain-language note.
Hover a node for its last-sync time.