For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Field
Data Type
Description

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 email and transcript from 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_level or on qualified being 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:

  1. Retrieve the x-storylane-signature header from the request.

  2. Get the raw body of the request (unparsed string).

  3. Compute the HMAC-SHA256 hash of the raw body using your Verification Secret as the key.

  4. Base64 encode the resulting hash.

  5. Compare your generated string with the value in the x-storylane-signature header.

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?