Customer Spine
For the one marketer, no data team

Every customer, in one place. Without asking engineering.

Customer Spine connects your app, Stripe, and support inbox into one profile per customer — then lets you build audiences and send them anywhere.

Storage included. Live this afternoon.

14 days free · no card · no engineer

NHNour Haddadnour@bloomkiln.co · cus_8fK2
Tue 14 Apr · 9:12amSigned up from a Product Hunt link
This week · 3 sessionsOpened the app three times — 11m, 4m, 22m
Fri 17 Apr · support inbox“Can I move my team over from Airtable?”
Sat 18 Apr · 11:40pmLeft the annual plan sitting in checkout
Mon 20 Apr · StripePaid for Growth, monthly instead$48.00
14 sent · 9 opened · 0 unsubscribesStill reading every email you send
Seven signals · five tools · one person
The problem

You already know where your customer data isn’t.

It sits in five tools that don’t talk

Signups in the app database. Purchases in Stripe. Replies in the inbox. Opens in the email tool. Every tool knows a sliver of her; none of them knows her.

Every list turns into a ticket

You asked for trial users who never came back. It arrived twelve days later as a CSV, already stale, and you needed one more column.

The same person, three times

She signs up with one address, pays with another, emails support from her phone. Three rows, one customer, and no way for you to join them up.app · nour@bloomkiln.costripe · n.haddad@gmail.comsupport · +961 3 •• 44 09

One profile

This is what one customer looks like when she’s whole.

Everything below was already in your tools this morning. Customer Spine matched it to one person and kept it current.

NHNour Haddadnour@bloomkiln.co · cus_8fK2 · Beirut, GMT+3
Updated 40 seconds ago

What we know

Plan
Growth, monthly
Paid to date
$144.00
Team size
4 seats, 3 active
Found you via
Product Hunt
Last seen
22 minutes ago
Email health
9 of 14 opened

Matched from

App databaseProduct eventsStripeSupport inboxResend

Audiences she’s in

Paid in the last 30 daysAsked about migratingAnnual upgrade candidates

Her timeline, across everything

Tue 14 Apr, 9:12am · app database
Created an account
Came in from a Product Hunt link, signed up with Google.
Tue 14 Apr, 9:31am · product events
Imported 340 contacts
First real action, nineteen minutes after signup.
Wed 15 Apr · product events
Three sessions — 11m, 4m, 22m
Came back twice the same evening.
Fri 17 Apr, 2:04pm · support inbox
“Can I move my team over from Airtable?”
Answered in 40 minutes by Dana. She replied “perfect, thanks.”
Sat 18 Apr, 11:40pm · Stripe
Left the annual plan in checkout
Reached the card step and stopped.
Mon 20 Apr, 8:55am · Stripe
Paid $48.00 for Growth, monthly
Chose monthly two days after abandoning annual.
Since signup · Resend
Opened 9 of 14 emails, never unsubscribed
Best opens on the Tuesday product notes.
Audiences

Build the segment yourself, in sentences.

Tick the conditions. The count moves as you go, against live data — try it.

Trials worth a nudgedraft

Conditions combine with and. No SQL, no export, no ticket.

Matching now
614 people
3 of 5 conditions applied
14.2% of all customers

Who’s in it right now

NHNour Haddadtrial day 6 · 3 sessions · no card
TLTobias Lindqvisttrial day 11 · 5 sessions · no card
+ 612 more, updating as people qualify
Send it anywhere

The audience shows up in the tool you were already going to use.

Syncs run every few minutes and tell you the truth when one doesn’t land.

KlaviyoIn sync
1,204 profiles, list “Trial nudge · wk 34”.
synced 3 min ago
Customer.ioIn sync
Feeds the day-3 and day-10 emails.
synced 6 min ago
ResendIn sync
Broadcast audience, refreshed hourly.
synced 41 min ago
HubSpot12 rejected
1,192 of 1,204 landed. Twelve are missing a company name.
last attempt 8 min ago
AttioIn sync
Tagged on the person record, not a new list.
synced 4 min ago
SlackIn sync
Posts to #growth when someone qualifies.
last post 22 min ago
MetaIn sync
Hashed custom audience, 1,102 matched.
synced 12 min ago
Google AdsWarming up
Customer Match needs 1,000 matches before it serves.
first sync 2 hours ago
HubSpot rejected 12 of 1,204 contacts — missing a required company field. The other 1,192 went through. Fix the field or drop the twelve; either way you can see exactly who.
See the 12 →
Setup, honestly

Three steps. About twenty minutes. Nobody from engineering.

Step one · 4 minutes

Connect a source

Stripe and the big email tools connect with a login. Your app database takes a read-only URL — the one your engineer can paste from her password manager in a Slack thread.

Step two · 10 minutes

Confirm how people are matched

We propose the matches — email, then user ID, then payment email — and show you the ambiguous ones. You approve or split them. It’s a screen of yes-and-no, not a project.

Step three · 5 minutes

Build your first audience

Tick conditions, name it, point it at Klaviyo or Customer.io. It keeps refilling itself as people qualify, so you build it once.

Storage is included, and here’s what that means

We host the data lake your profiles live in. There’s nothing to provision and nothing to keep running once you’ve set it up.

  • No warehouse to buy
  • No contract with Snowflake or BigQuery
  • No data engineer, in-house or borrowed
  • No separate storage line on the invoice

Have every customer in one place by the end of the day.

Priced for a company that counts its people on two hands — one plan, no seat minimums, no annual commitment, storage in the box. It costs less than the afternoon you’d spend chasing the CSV.

14 days free · cancel in one click · your data leaves with you