Completions

Data-layer swarm · Customer-Graph Agent · Behavioral-signal-ingestion skill · Build pillar · Published June 6, 2026

How to build behavioral signal ingestion for a multi-location customer graph

This guide explains how to architect the behavioral-signal-ingestion skill on the customer-graph agent end-to-end at multi-location franchise + multi-store scale: per-portfolio per-location per-canonical-multi-channel-signal-ingestion + per-signal-normalization + per-identity-stitching + per-customer-graph-spec + per-PII-handling + per-signal-rate-limit + per-signal-deduplication + per-real-time-streaming + per-batch-backfill + per-customer-graph-query-API + per-portfolio audit-trail.

What you will build

  • Per-portfolio per-canonical-multi-channel-signal-ingestion across per-web (Heap + Mixpanel + Amplitude + PostHog + Segment + RudderStack + Snowplow + mParticle + Lytics + Tealium) + per-email (Klaviyo + Iterable + Braze + Customer.io + Mailchimp + Listrak) + per-SMS (Attentive + Postscript + EZ Texting + SimpleTexting + TextMagic) + per-call (CallRail + Invoca + DialogTech + CallTrackingMetrics + Phonexa) + per-walk-in (Toast + Square + Clover + Lightspeed + Aloha POS) + per-loyalty (Punchh + Thanx + Paytronix + LevelUp + Como).
  • Per-canonical-signal-normalization — per-source-event-name-to-canonical-event-name + per-source-property-to-canonical-property + per-source-timestamp-to-UTC + per-source-currency-to-USD-cents + per-IP-geolocation + per-user-agent-parsing + per-device-fingerprint + per-session-stitching.
  • Per-canonical-identity-stitching — per-deterministic (shared email + shared phone + shared loyalty-ID + shared customer-ID) + per-probabilistic (IP + device fingerprint + browser fingerprint + cookie graph + LiveRamp RampID + The Trade Desk UID2 + Unified ID 2.0) + per-confidence-scoring + per-merge-rule (survivorship most-recent-wins + most-complete-wins + highest-LTV-wins) + per-split-on-conflict + per-graph-versioning.
  • Per-canonical-customer-graph-spec — per-node-spec (customer + household + account + loyalty-tier-state) + per-edge-spec (pageview + purchase + email-open + SMS-click + call + walk-in + loyalty-redemption) + per-graph-database (Neo4j + TigerGraph + Amazon Neptune + ArangoDB + Memgraph + DGraph).
  • Per-canonical-PII-handling — per-PII-classification (name + email + phone + address + DOB + SSN-last-4 + credit-card-last-4 + loyalty-ID) + per-encryption-at-rest (AES-256 + AWS KMS + GCP KMS + Azure Key Vault) + per-encryption-in-transit (TLS-1.3 + mTLS) + per-tokenization (Skyflow + Privacera + format-preserving encryption) + per-retention-policy (CCPA 12-month + GDPR right-to-erasure + FDD 7-year) + per-DSAR-export.
  • Per-canonical-signal-rate-limit + per-signal-deduplication + per-real-time-streaming — per-vendor-rate-limit-budget + per-backpressure + per-overflow-to-DLQ + per-idempotency-key (source event-ID + timestamp + payload-hash) + per-cross-vendor-deduplication-window + per-Kafka + per-Kinesis + per-EventBridge + per-Pulsar + per-Redpanda + per-Confluent + per-Flink + per-Beam + per-Materialize stream-processing.
  • Per-canonical-customer-graph-query-API — per-Cypher + per-Gremlin + per-GraphQL + per-SPARQL + per-OpenCypher + per-customer-360-API (by loyalty-ID + by email + by phone) + per-journey-API (touchpoint sequence + time-windowed + multi-channel attribution) + per-cohort-API (trait + event + RFM + LTV) + per-rate-limit + per-authentication.

Why per-vendor-Segment-Sources-single-account breaks at multi-location-franchise scale

Per-vendor-Segment-canonical-Sources ships per-account per-source per-track-event primitive. Per-vendor-RudderStack + Snowplow + mParticle + Heap + Mixpanel + Amplitude + PostHog + Lytics + Tealium-canonical-single-account ship per-vendor per-native behavioral-analytics primitives.

At 1-location-1-marketing-team scale per-account per-source per-track-event primitive is enough. At 200-location-200-franchisee scale per-canonical-multi-channel-signal-ingestion-not-single-account + per-cross-channel-identity-stitching-deterministic-probabilistic + per-customer-graph-spec-per-entity-per-edge + per-PII-handling-FDD-CCPA-GDPR + per-cross-vendor-signal-deduplication + per-per-location-customer-graph-isolation-multi-tenant.

Per-cross-vendor-signal-fragmentation + per-identity-stitching-blind + per-PII-leak-at-ingestion-risk + per-customer-graph-blind + per-customer-360-blind + per-multi-channel-attribution-blind + per-cohort-blind.

The operator-side architecture above per-vendor-behavioral-analytics primitive is canonical-multi-channel-signal-ingestion + per-signal-normalization + per-identity-stitching + per-customer-graph-spec + per-PII-handling + per-rate-limit + per-deduplication + per-real-time-streaming + per-customer-graph-query-API + per-portfolio-audit-trail.

What is in market today

Per-platform per-customer-data-platform-vendor

Segment (Twilio Segment), RudderStack, Snowplow, mParticle, Lytics, Tealium, BlueConic, Treasure Data, ActionIQ, Hightouch (reverse ETL CDP), Census (reverse ETL CDP). Per-account per-source per-track-event. Per-canonical-customer-graph-spec-canonical-per-entity-per-edge-canonical-graph-database is not the primitive.

Per-platform per-product-analytics-vendor

Heap, Mixpanel, Amplitude, PostHog, Pendo, FullStory, Hotjar, LogRocket, Glassbox, Quantum Metric. Per-account per-project per-event. Per-canonical-cross-channel-identity-stitching-canonical-deterministic-canonical-probabilistic-canonical-LiveRamp-canonical-UID2.0 is not the primitive.

Per-platform per-graph-database

Neo4j, TigerGraph, Amazon Neptune, ArangoDB, Memgraph, DGraph, JanusGraph, OrientDB, Stardog. Per-instance per-database per-query. Per-canonical-per-portfolio-customer-graph-canonical-multi-tenant-canonical-per-location-isolation-canonical-PII-handling is not the primitive.

Per-platform per-identity-resolution-vendor

LiveRamp (RampID), The Trade Desk (UID2.0), Tapad (Experian Marketing Services), Neustar (TransUnion), Acxiom (LiveRamp), Merkle, Drawbridge (LinkedIn), Throtle. Per-account per-identity-graph primitive. Per-canonical-deterministic-canonical-probabilistic-canonical-confidence-scoring-canonical-merge-rule-canonical-survivorship is not the primitive.

How the architecture is built

  1. Per-portfolio per-canonical-multi-channel-signal-vendor-API-substrate. Per-web + per-email + per-SMS + per-call + per-walk-in + per-loyalty canonical-multi-channel.
  2. Per-portfolio per-canonical-per-channel-signal-schema-canonicalization. Per-source-event-name-to-canonical + per-source-property-to-canonical + per-UTC-timestamp + per-USD-cents canonical-canonicalization.
  3. Per-portfolio per-canonical-signal-event-enrichment. Per-IP-geolocation + per-user-agent-parsing + per-device-fingerprint + per-session-stitching canonical-enrichment.
  4. Per-portfolio per-canonical-deterministic-identity-match. Per-shared-email + per-shared-phone + per-shared-loyalty-ID + per-shared-customer-ID canonical-deterministic.
  5. Per-portfolio per-canonical-probabilistic-identity-match. Per-IP + per-device-fingerprint + per-browser-fingerprint + per-cookie-graph + per-LiveRamp-RampID + per-UID2.0 canonical-probabilistic.
  6. Per-portfolio per-canonical-identity-confidence-scoring + per-merge-rule + per-split-on-conflict + per-graph-versioning. Per-survivorship-most-recent-wins + per-most-complete-wins + per-highest-LTV-wins + per-split-on-conflict + per-graph-version canonical-identity-merge.
  7. Per-portfolio per-canonical-customer-node-spec + per-edge-spec. Per-customer + per-household + per-account + per-loyalty-tier-state + per-pageview-edge + per-purchase-edge + per-email-open-edge + per-SMS-click-edge + per-call-edge + per-walk-in-edge + per-loyalty-redemption-edge canonical-graph-spec.
  8. Per-portfolio per-canonical-graph-database. Per-Neo4j + per-TigerGraph + per-Amazon-Neptune + per-ArangoDB + per-Memgraph + per-DGraph canonical-graph-database.
  9. Per-portfolio per-canonical-PII-handling. Per-PII-classification + per-AES-256-encryption-at-rest + per-AWS-KMS + per-TLS-1.3-encryption-in-transit + per-Skyflow-tokenization + per-CCPA-12-month-deletion + per-GDPR-right-to-erasure + per-FDD-7-year-retention + per-DSAR-export canonical-PII.
  10. Per-portfolio per-canonical-signal-rate-limit. Per-vendor-rate-limit-budget + per-backpressure + per-overflow-to-DLQ canonical-rate-limit.
  11. Per-portfolio per-canonical-signal-deduplication. Per-idempotency-key + per-cross-vendor-deduplication-window canonical-deduplication.
  12. Per-portfolio per-canonical-real-time-streaming + per-stream-processing. Per-Kafka + per-Kinesis + per-EventBridge + per-Pulsar + per-Redpanda + per-Confluent-Cloud + per-Apache-Flink + per-Apache-Beam + per-Materialize canonical-streaming.
  13. Per-portfolio per-canonical-customer-graph-query-API + per-portfolio-audit-trail. Per-Cypher + per-Gremlin + per-GraphQL + per-SPARQL + per-OpenCypher + per-customer-360-API + per-journey-API + per-cohort-API + per-rate-limit + per-authentication + per-CSV-export + per-SOC2-export + per-FDD-CCPA-GDPR-export + per-immutable-storage canonical-query-API.

Frequently asked questions

What is behavioral signal ingestion for a multi-location customer graph?

Behavioral signal ingestion runs per-portfolio per-location per-canonical-multi-channel-signal-ingestion + per-canonical-signal-normalization + per-canonical-identity-stitching + per-canonical-customer-graph-spec + per-canonical-PII-handling + per-canonical-signal-rate-limit + per-canonical-signal-deduplication + per-canonical-real-time-streaming + per-canonical-batch-backfill + per-canonical-customer-graph-query-API + per-portfolio audit-trail. Per-canonical-multi-channel-signal-ingestion runs per-canonical-web-signal-vendor (per-Heap + per-Mixpanel + per-Amplitude + per-PostHog + per-Segment + per-RudderStack + per-Snowplow + per-mParticle + per-Lytics + per-Tealium per-canonical-web) + per-canonical-email-signal-vendor (per-Klaviyo + per-Iterable + per-Braze + per-Customer.io + per-Mailchimp + per-Listrak per-canonical-email) + per-canonical-SMS-signal-vendor (per-Attentive + per-Postscript + per-EZ-Texting + per-SimpleTexting + per-TextMagic per-canonical-SMS) + per-canonical-call-signal-vendor (per-CallRail + per-Invoca + per-DialogTech + per-CallTrackingMetrics + per-Phonexa per-canonical-call) + per-canonical-walk-in-signal-vendor (per-Toast-POS + per-Square-POS + per-Clover-POS + per-Lightspeed-POS + per-Aloha-POS per-canonical-walk-in) + per-canonical-loyalty-signal-vendor (per-Punchh + per-Thanx + per-Paytronix + per-LevelUp + per-Como per-canonical-loyalty). The per-platform customer-engagement-analytics vendor category includes Segment, RudderStack, Snowplow, mParticle, Heap, Mixpanel, Amplitude, PostHog, Pendo, FullStory, Hotjar, Tealium, Lytics, Twilio Segment.

Why does per-vendor-Segment-canonical-Sources-canonical-single-account break down at multi-location-franchise scale?

Per-vendor-Segment-canonical-Sources ships per-account per-source per-track-event primitive. Per-vendor-RudderStack + per-Snowplow + per-mParticle + per-Heap + per-Mixpanel + per-Amplitude + per-PostHog + per-Lytics + per-Tealium-canonical-single-account ship per-vendor per-native behavioral-analytics primitives. At 1-location-1-marketing-team scale per-account per-source per-track-event primitive is enough. At 200-location-200-franchisee scale per-canonical-multi-channel-signal-ingestion-canonical-not-single-account + per-canonical-cross-channel-identity-stitching-canonical-deterministic-canonical-probabilistic + per-canonical-customer-graph-spec-canonical-per-entity-per-edge + per-canonical-PII-handling-canonical-FDD-canonical-CCPA-canonical-GDPR + per-canonical-cross-vendor-signal-deduplication + per-canonical-per-location-customer-graph-isolation-canonical-multi-tenant.

How does per-portfolio per-canonical-multi-channel-signal-ingestion + per-signal-normalization work?

Per-portfolio per-canonical-multi-channel-signal-ingestion runs per-portfolio per-canonical-per-channel-signal-vendor-API + per-canonical-per-channel-signal-schema (per-web-pageview + per-web-click + per-web-form-submit + per-web-purchase + per-email-open + per-email-click + per-email-unsubscribe + per-SMS-receive + per-SMS-click + per-call-inbound + per-call-outbound + per-walk-in-visit + per-walk-in-transaction + per-loyalty-enrollment + per-loyalty-redemption per-canonical-signal-schema) + per-canonical-per-channel-real-time-stream-API + per-canonical-per-channel-batch-backfill-API. Per-canonical-signal-normalization runs per-portfolio per-canonical-signal-event-schema-canonicalization (per-source-event-name-to-canonical-event-name + per-source-property-to-canonical-property + per-source-timestamp-to-UTC-canonicalization + per-source-currency-to-USD-cents per-canonical-canonicalization) + per-canonical-signal-event-enrichment (per-IP-geolocation + per-user-agent-parsing + per-device-fingerprint + per-session-stitching per-canonical-enrichment).

What does per-portfolio per-canonical-identity-stitching + per-customer-graph-spec do?

Per-portfolio per-canonical-identity-stitching runs per-portfolio per-canonical-deterministic-identity-match (per-shared-email + per-shared-phone + per-shared-loyalty-ID + per-shared-customer-ID per-canonical-deterministic) + per-canonical-probabilistic-identity-match (per-IP + per-device-fingerprint + per-browser-fingerprint + per-cookie-graph + per-LiveRamp-RampID + per-The-Trade-Desk-UID2 + per-Unified-ID-2.0 per-canonical-probabilistic) + per-canonical-identity-confidence-scoring + per-canonical-identity-merge-rule (per-survivorship-most-recent-wins + per-most-complete-wins + per-highest-LTV-wins per-canonical-merge-rule) + per-canonical-identity-split-on-conflict + per-canonical-identity-graph-versioning. Per-canonical-customer-graph-spec runs per-portfolio per-canonical-customer-node-spec (per-canonical-customer + per-canonical-household + per-canonical-account + per-canonical-loyalty-tier-state per-canonical-node) + per-canonical-edge-spec (per-pageview-edge + per-purchase-edge + per-email-open-edge + per-SMS-click-edge + per-call-edge + per-walk-in-edge + per-loyalty-redemption-edge per-canonical-edge) + per-canonical-graph-database (per-Neo4j + per-TigerGraph + per-Amazon-Neptune + per-ArangoDB + per-Memgraph + per-DGraph per-canonical-graph-database).

What does per-portfolio per-canonical-PII-handling + per-signal-rate-limit + per-signal-deduplication + per-real-time-streaming do?

Per-portfolio per-canonical-PII-handling runs per-portfolio per-canonical-PII-field-classification (per-name + per-email + per-phone + per-address + per-DOB + per-SSN-last-4 + per-credit-card-last-4 + per-loyalty-ID per-canonical-classification) + per-canonical-PII-encryption-at-rest (per-AES-256 + per-AWS-KMS + per-GCP-KMS + per-Azure-Key-Vault per-canonical-encryption-at-rest) + per-canonical-PII-encryption-in-transit (per-TLS-1.3 + per-mTLS per-canonical-encryption-in-transit) + per-canonical-PII-tokenization (per-Skyflow + per-Privacera + per-format-preserving-encryption per-canonical-tokenization) + per-canonical-PII-retention-policy (per-CCPA-12-month-deletion + per-GDPR-right-to-erasure + per-FDD-7-year-retention per-canonical-retention) + per-canonical-PII-data-subject-access-request-export. Per-canonical-signal-rate-limit runs per-portfolio per-canonical-per-vendor-rate-limit-budget (per-1000-events-per-second + per-10000-events-per-minute + per-1M-events-per-day per-canonical-rate-limit-budget) + per-canonical-rate-limit-backpressure + per-canonical-rate-limit-overflow-to-dead-letter-queue. Per-canonical-signal-deduplication runs per-portfolio per-canonical-signal-idempotency-key (per-source-event-ID + per-source-timestamp + per-source-payload-hash per-canonical-idempotency) + per-canonical-cross-vendor-signal-deduplication-window (per-60-second + per-1-hour + per-24-hour per-canonical-window). Per-canonical-real-time-streaming runs per-portfolio per-canonical-Kafka + per-canonical-Kinesis + per-canonical-EventBridge + per-canonical-Pulsar + per-canonical-Redpanda + per-canonical-Confluent-Cloud + per-canonical-Apache-Flink-stream-processing + per-canonical-Apache-Beam + per-canonical-Materialize.

What does per-portfolio per-canonical-customer-graph-query-API + per-customer-graph-agent-canonical-bundle do?

Per-portfolio per-canonical-customer-graph-query-API runs per-portfolio per-canonical-graph-query-language (per-Cypher + per-Gremlin + per-GraphQL + per-SPARQL + per-OpenCypher per-canonical-query-language) + per-canonical-per-customer-360-API (per-customer-by-loyalty-ID + per-customer-by-email + per-customer-by-phone per-canonical-360-API) + per-canonical-per-customer-journey-API (per-touchpoint-sequence + per-time-windowed-journey + per-multi-channel-attribution per-canonical-journey-API) + per-canonical-per-cohort-API (per-trait-cohort + per-event-cohort + per-RFM-cohort + per-LTV-cohort per-canonical-cohort-API) + per-canonical-graph-API-rate-limit + per-canonical-graph-API-authentication. Per-customer-graph-agent-canonical-bundle integrates the behavioral-signal-ingestion skill with sibling skills on the same agent: per-canonical-identity-resolution (sibling, downstream consumer of stitched identity graph) + per-canonical-customer-data-orchestration (sibling, downstream consumer of normalized signal stream) + per-canonical-customer-journey-tracking (sibling, consumer of per-customer-journey-API) + per-canonical-attribution-event-emission (sibling, consumer of touchpoint sequence for attribution-event emission).

Engage the customer-graph agent

Per-portfolio per-canonical-multi-channel-signal-ingestion + per-signal-normalization + per-identity-stitching + per-customer-graph-spec + per-PII-handling + per-signal-rate-limit + per-signal-deduplication + per-real-time-streaming + per-batch-backfill + per-customer-graph-query-API + per-portfolio audit-trail shipped as the orchestration layer above your existing per-customer-data-platform-vendor + per-product-analytics-vendor + per-graph-database + per-identity-resolution-vendor primitive.