Zapier
Not every tool your team runs on has a native RepX integration. Zapier covers the rest of them.
Jump ahead:
RepX fires an event every time a conversation completes, carrying the entire conversation and everything RepX extracted from it - the summary, topics, transcript, lead details, and all of your conversation signals. Zapier listens for that event, and from there you can send any part of it to any of the 5,000+ apps Zapier supports. Think of the event as a set of building blocks rather than a fixed integration: you decide which pieces matter and where they go.
Setting up the Zapier integration
Click Settings on the left-hand menu, and then click on the Integrations tab.
Choose the Zapier integration and click Connect.
You'll be given an API key. Copy it.
In Zapier, create a new Zap, choose Storylane as the trigger app, and paste the API key when Zapier asks you to connect your Storylane account.
Select RepX conversation completed as the trigger event.
Zapier will pull in a sample conversation so you can map fields to your destination app while you're building the Zap.
The RepX conversation completed event
The repx_conversation_completed event fires once for every conversation, as soon as that conversation is complete and RepX has finished processing it. There is one event per conversation - it isn't fired again if the same visitor returns and starts a new conversation, that produces its own event.
What the event contains
id
String
Unique identifier for the conversation
event
String
Always repx_conversation_completed
transcript
String
The full conversation, message by message, including whether it happened in text or voice mode
conversation_summary
String
A short AI-generated summary of what the conversation covered
topics
Array
The topics discussed during the conversation
intent_level
String
Buying intent calculated for the conversation - high, medium or low
extracted_variables
Object
All conversation signals extracted from the conversation - both default and custom
duration
Number
Length of the conversation, in seconds
message_count
Number
Number of messages exchanged in the conversation
started_at
String
Timestamp of when the conversation began, in ISO 8601
completed_at
String
Timestamp of when the conversation completed, in ISO 8601
cta_opened
String
The CTA URL the visitor clicked during the conversation, if any
lead
Object
Lead details - id, email, first_name, last_name, lead_source, client_source and client_tracking_id
buyer_reveal
Object
Company details resolved from the visitor's IP or email - name, domain, revenue range, employee range and a confidence score
location
Object
The visitor's country, city and state
extracted_variables always contains the four default signals - email, visitor_name, phone_number and qualified. Every custom signal you create is added to this block under its machine key, and arrives typed - a Yes / No signal as a boolean, a Number signal as a number. Because the machine key can't be changed after a signal is created, a field you map in Zapier stays mapped. See Conversation signals for how to set them up.
Sample payload:
Use cases: What teams build with it
These are the patterns customers set up most often.
Brief a rep before they reach out. When a visitor submits their email, send the summary, topics and pain points to the BDR who owns that account - in Slack, by email, or as a task in your sales engagement tool. The rep opens the conversation already knowing what the prospect cares about instead of starting cold.
Push custom signals into specific CRM fields. The HubSpot integration writes a standard set of conversation attributes as properties and notes. Anything beyond that - pain points, number of users or sites, primary product interest - can be mapped through Zapier into whichever custom fields your CRM already uses, so the information sits where your team already looks for it. Because signals arrive typed, a Number signal lands in a numeric CRM field you can build workflows against.
Send the transcript to the visitor. Take the
emailandtranscriptfrom the event and trigger an automated email through your nurture tool as soon as the conversation ends, so the visitor has a record of what they were told.Post high-intent conversations to Slack. Filter on
intent_levelor onqualifiedbeing true, and only notify your team about the conversations worth acting on today.Route by product interest. Use a custom signal to branch the Zap - conversations about one product go to one team's channel or queue, conversations about another go elsewhere.
Score and enrich before handoff. Send the conversation into your enrichment or scoring tool first, then create the CRM record only once it clears your bar, so your CRM stays clean.
Webhooks
If you'd rather receive conversation data directly in your own systems instead of routing it through Zapier, RepX can post the same repx_conversation_completed event to a webhook URL you control.
Setting up a webhook
Click Settings on the left-hand menu, and then click on the Integrations tab.
Choose the Webhook integration and click Connect.
Paste your webhook URL - the endpoint where you want to receive events.
RepX sends a POST request to that URL every time a conversation completes. The payload is identical to the RepX conversation completed event described above, including the extracted_variables block with all of your conversation signals.
Verifying the webhook signature
To confirm that a request came from Storylane and wasn't tampered with, verify the signature included in the request headers.
Every webhook request includes an x-storylane-signature header. This signature is an HMAC-SHA256 hash of the raw request body, generated using your Webhook Verification Secret and then Base64 encoded. You'll find your Verification Secret under Settings > Integrations > Webhook. Keep it secure - don't share it or commit it to public repositories.
To verify:
Retrieve the
x-storylane-signatureheader from the request.Get the raw body of the request (unparsed string).
Compute the HMAC-SHA256 hash of the raw body using your Verification Secret as the key.
Base64 encode the resulting hash.
Compare your generated string with the value in the
x-storylane-signatureheader.
Implementation examples in Node.js, Ruby and Python are available on the Webhooks page.
Your endpoint should return a 2xx response as soon as it receives the event, and do any heavy processing afterwards. Acknowledge first, process second.
Last updated
Was this helpful?