
CurviatexRB2B
Reach website visitors on LinkedIn. Connect the two with Curviate’s webhooks and API, then build the flow you need.
What is RB2B?
RB2B identifies people and companies visiting a website and sends their names, LinkedIn profiles and work emails to tools like Slack and CRMs. Sales, marketing and growth teams use it.
Visit rb2b.comHow RB2B works with Curviate
RB2B spots who is showing interest, and Curviate reaches them on LinkedIn while it matters. Send each signal to Curviate’s API to start a Motion, and get replies back with a webhook.
Replies outmessage.receivedenrollment.finished
add contactsstart a MotionWhat you can build
Three flows teams set up first. Each one takes a few minutes.

A signal starts a Motion
When RB2B flags a person or account, they get a LinkedIn touch the same day.
POST /v1/motions/…/contacts
Hot leads, a personal note
The signal travels along as a field, so your message can mention what they did.
POST /v1/contactsReplies to your team
When someone replies on LinkedIn, your team hears about it in Slack.
message.receivedSet up RB2B with Curviate
Everything runs on two things Curviate gives every account: signed webhooks out and a REST API in.
- 1
Copy your Curviate API key
In the Curviate dashboard, open Settings, then API & Webhooks, and copy your key.
# keep it in your tool's credentials, never in plain text
CURVIATE_API_KEY=cvt_live_••••3f9a - 2
Send people from RB2B to Curviate
Use RB2B’s HTTP request or webhook action, or an automation tool, to call Curviate with each person’s LinkedIn URL. Extra fields travel along for your messages.
POST https://api.curviate.com/v1/contacts
{ "linkedin_url": "linkedin.com/in/lenaweber",
"list_name": "RB2B signals",
"extra": { "signal": "visited pricing" } } - 3
Start the Motion
Add the new contacts to a Motion. They start within its schedule and each account’s limits.
# start your Motion for them
POST https://api.curviate.com/v1/motions/mot_…/contacts
{ "contact_ids": ["con_…"] } - 4
Get replies back
Point a Curviate webhook at RB2B, your automation tool or Slack to hear about replies. Each webhook covers one source:
messagingfor replies,userfor accepted invitations,motionfor Motion outcomes,account_statusfor account alerts.curl https://api.curviate.com/v1/webhooks \
-H "Authorization: Bearer $CURVIATE_API_KEY" \
-d '{
"source": "messaging",
"events": ["message.received"],
"account_ids": ["acc_…"],
"request_url": "https://your-endpoint.example.com/curviate"
}' - 5
Check the signature
Every delivery carries a
Curviate-Signatureheader: an HMAC-SHA256 of the timestamp and the raw body, made with your webhook’s secret. Compare it before you act, and drop anything older than five minutes.Curviate-Signature: t=1792230000,v1=5f2c9a…e81b
# expected = HMAC_SHA256(secret, t + "." + raw_body)
Events you can use
message.receivedA LinkedIn message or InMail arrivedconnection.acceptedSomeone accepted an invitation you sent through Curviateenrollment.finishedA contact finished a Motion, with the reasonmotion.signalA Motion reached a step you marked to notify youpost.publishedA scheduled post went liveaccount.reconnect_neededAn account needs to sign in againActions you can call
POST /v1/contactsAdd or update a contactPOST /v1/motions/{id}/contactsStart a Motion for contactsPOST /v1/{account_id}/chats/{chat_id}/messagesSend a messagePOST /v1/enrollments/{id}/signalTell a waiting Motion to continueGET /v1/{account_id}/companies/{identifier}Read a company pageQuestions about Curviate x RB2B
What does Curviate need from RB2B?
A LinkedIn profile URL per person. Names, company and any extra fields are optional and can be used in your messages.
Will someone be contacted twice?
No. Curviate recognises a person by their LinkedIn profile, so sending them again updates the contact, and Motions can skip people who are already in another Motion.
How fast does a new person start?
Right away, within the Motion’s schedule and each account’s limits.
More signals and prospecting
Connect RB2B today.Free for 7 days.
Create your API key, point a webhook at RB2B and run your first flow.

