Skip to content
tezvyn:
Menu

Unify behavior, billing, and CRM data

Source: interviewMediumHow cards are made

Summary

an ELT pipeline with identity resolution.

Key points

ingest events, sync Stripe and Salesforce into a warehouse, resolve identities to one customer, model unified metrics.

Watch out for

ignoring identity stitching and the anonymous-to-known join.

What's really being asked

The interviewer wants a data-engineering architecture plus awareness of the hard parts. Joining behavioral, billing, and CRM data sounds simple until you confront that none of the systems share a clean key and each emits data at a different rate and grain.

The full answer

Use an ELT pattern into a central warehouse. Front-end behavior streams in as events through a collector; Stripe and Salesforce are synced by scheduled batch or change-data-capture, landing raw, then transformed in the warehouse. The crux is identity resolution: an anonymous visitor has a device or session id, a paying user has a Stripe customer id, and a sales lead has a Salesforce id, often with different emails. You need an identity-stitching layer that resolves all of these to one canonical customer, including bridging the anonymous-to-known transition at signup. On top, model the metrics: activation from events, conversion joining behavior to first paid subscription, revenue from Stripe. Key challenges to name: identity stitching, schema drift as third-party APIs change fields, differing data freshness and grain between a real-time event and a daily CRM sync, late-arriving data, and PII governance and access control across systems.

The mistakes people make

Assuming all three systems share a join key like email. Ignoring the anonymous-to-known stitching problem, so pre-signup behavior never links to revenue. Forgetting schema drift and the data-freshness mismatch. Overlooking PII compliance.

What usually comes next

How do you stitch an anonymous session to a user after signup? How do you handle Salesforce changing a field name? Batch versus streaming for the CRM source?

A concrete example

A visitor browses anonymously with a session id, signs up generating a user id, later becomes a Stripe customer, and is logged as a Salesforce opportunity. Your identity-resolution layer links session, user, Stripe, and Salesforce ids into one customer record. Now you can attribute that closed-won revenue back to the original GTM campaign that drove the anonymous visit, the unified view leadership wanted.

Interview question

What is the central technical challenge in unifying front-end behavior, Stripe billing, and Salesforce CRM data?

  • a.Converting all data to the same file format
  • b.Choosing which cloud region to host the warehouse in
  • c.All three systems already share a single customer key, so it is trivial
  • d.Resolving identities across anonymous, billing, and CRM records into one canonical customer despite no shared keyCorrect
Why?

The systems lack a common key and include anonymous activity, so identity stitching into one canonical customer is the core problem. They do not share a key, file format is trivial, and region choice is an operational detail, not the central challenge.

Just read this? Test yourself on what you have been reading.

Read the original → en.wikipedia.org

Put your scrolling time to good use

Learn one idea, try a quiz and save useful cards for revision. Tezvyn makes it easy to learn and stay current in your tech field, a few minutes at a time.

The iPhone app is on the way

We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.

Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.

Get it on Google PlayiPhone app coming soon

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles