Guides

Leadpipe + Salesloft: Add Visitors to Cadences

Send identified website visitors directly into Salesloft cadences. Pricing page visitors get one cadence, blog readers get another. Setup guide.

Nicolas Canal Nicolas Canal · · 10 min read
Leadpipe + Salesloft: Add Visitors to Cadences

Your Salesloft cadences are only as good as the people in them. Right now, your reps are importing purchased lists, manually adding conference leads, and cherry-picking from inbound. Meanwhile, hundreds of website visitors per week - people who actively browsed your product pages, compared your pricing, and read your case studies - never make it into a cadence at all.

They visited. They showed interest. And then they disappeared into the void because nobody knew who they were.

Connecting Leadpipe to Salesloft fixes this. Every identified website visitor automatically becomes a Salesloft person enrolled in the right cadence based on what they viewed. Pricing page visitors go into your fastest cadence. Blog readers get a nurture track. Feature page browsers get a consultative sequence. Zero manual work.

This guide covers the full setup: webhook to cadence enrollment, field mapping, intent-based routing, Rhythm integration, and templates that convert.


How the Integration Works

Website Visitor → Leadpipe Identifies → Webhook Fires →
Zapier/API Routes → Salesloft Person Created → Cadence Enrolled

Leadpipe’s real-time webhooks fire when a visitor is identified. You route that data to Salesloft through one of two paths:

PathSetup TimeBest For
Zapier (Webhook → Salesloft)20 minutesMost teams, no-code setup
Salesloft API (direct)45-60 minutesEngineering teams, high volume

What You’ll Need


Step 1: Set Up the Leadpipe Webhook

  1. In Leadpipe, go to Settings > Integrations > Webhooks
  2. Click Add Webhook
  3. Choose First Match trigger type (one webhook per visitor)
  4. Enter your Zapier catch hook URL or API endpoint
  5. Save and send a test event

Use First Match for person creation and cadence enrollment. You can add a second webhook with Every Update later for ongoing engagement tracking.


Step 2: Field Mapping - Leadpipe to Salesloft

Map Leadpipe webhook fields to Salesloft person fields:

Leadpipe FieldSalesloft Person FieldNotes
emailEmail addressPrimary identifier
first_nameFirst nameUsed in cadence personalization
last_nameLast nameUsed in cadence personalization
company_nameAccount nameCreates or matches account
job_titleTitleUsed for routing and tags
linkedin_urlLinkedIn URLNative Salesloft field
page_urlCustom field: First Page ViewedIntent context for reps
visit_durationCustom field: Visit Duration (seconds)Engagement depth

Creating Custom Fields in Salesloft

Before connecting, add custom fields:

  1. Go to Settings > People > Custom Fields
  2. Add First Page Viewed (Text)
  3. Add Visit Duration (Number)
  4. Add Lead Source (Text) - default to “Leadpipe Visitor ID”

These custom fields give your reps the context they need when working the cadence. The difference between “random cold lead” and “visited our pricing page for 3 minutes” is the difference between a rep who’s excited to make the call and one who’s dreading it.


Step 3: Intent-Based Cadence Routing

The real power of this integration isn’t just adding people to Salesloft - it’s routing them to the right cadence based on their actual behavior on your site.

High-Intent Cadence (Pricing/Demo Visitors)

Trigger: page_url contains /pricing, /demo, /contact, or /free-trial

These visitors are bottom-of-funnel. They’re evaluating cost, comparing you to competitors, and deciding whether to engage. Your cadence should be fast, direct, and value-focused.

Cadence structure (5 steps, 7 days):

DayStep TypeAction
0EmailReference their evaluation. Lead with your top differentiator.
1LinkedInView profile, connect with personalized note
2PhoneCall with a clear value prop. Leave voicemail if needed.
4EmailShare a competitive comparison or ROI case study
7EmailFinal touch with a direct ask for 15 minutes

Mid-Intent Cadence (Product/Feature Visitors)

Trigger: page_url contains /features, /product, /integrations, /how-it-works, or /case-studies

These visitors are researching but haven’t reached the pricing/buying stage. Your cadence should educate and build trust.

Cadence structure (6 steps, 14 days):

DayStep TypeAction
0EmailReference the feature they explored. Share a relevant resource.
3LinkedInConnect. Engage with their content.
5EmailCase study from their industry
8PhoneCheck-in call
11EmailAddress common objections or questions
14EmailOffer a demo or walkthrough

Low-Intent Cadence (Blog/Resource Visitors)

Trigger: page_url contains /blog, /resources, /webinar

Blog visitors have topical interest but may not be actively buying. Your cadence should nurture gently over a longer period.

Cadence structure (4 steps, 28 days):

DayStep TypeAction
0EmailShare a related resource to what they read
7EmailConnect their topic of interest to your product
14LinkedInEngage with their content, build relationship
28EmailSoft CTA for a conversation

Step 4: Zapier Setup (Step-by-Step)

Trigger

  1. Create a new Zap
  2. Trigger: Webhooks by Zapier > Catch Hook
  3. Copy the webhook URL to Leadpipe
  4. Send a test event

Filter

Add a filter to ensure quality:

email - Exists
AND
email - Does not contain - gmail.com, yahoo.com, hotmail.com

See our Zapier automation recipes for additional filter patterns.

Paths (Intent Routing)

Use Zapier Paths for routing:

Path A: High Intent

  • Condition: page_url contains “pricing” OR “demo” OR “contact”
  • Action: Salesloft > Create Person > Add to High-Intent Cadence

Path B: Mid Intent

  • Condition: page_url contains “features” OR “product” OR “case-studies”
  • Action: Salesloft > Create Person > Add to Mid-Intent Cadence

Path C: Low Intent

  • Condition: Default (everything else)
  • Action: Salesloft > Create Person > Add to Low-Intent Cadence

Deduplication

Salesloft handles deduplication by email address. If a person with that email already exists, the API updates the existing record rather than creating a duplicate. Make sure to enable “Create or Update” behavior in your Zapier action.

If you want to prevent re-enrolling existing prospects in cadences, add a Salesloft > Find Person step before the create action. If the person exists and is already in an active cadence, skip enrollment.


Step 5: Salesloft Rhythm Integration

Salesloft Rhythm is the AI-powered prioritization engine that tells reps which actions to take next, as described in Salesloft’s product resources. Here’s how to make identified visitors work with Rhythm:

Signal Priority

Configure your Rhythm signals to prioritize Leadpipe-sourced people:

  • High-intent visitors (pricing/demo pages) get boosted signal priority
  • Return visitors (someone who was already in a cadence visits again) get an immediate priority bump
  • Multi-page visitors (viewed 3+ pages in one session) get flagged as engaged

Plays for Identified Visitors

Create Rhythm Plays specifically for Leadpipe data:

Play: “Hot Website Visitor”

  • Trigger: New person created with Lead Source = “Leadpipe Visitor ID” AND First Page Viewed contains “pricing”
  • Action: Assign to nearest available rep, prioritize above cold tasks
  • SLA: Respond within 1 hour

Play: “Return Visitor Alert”

  • Trigger: Person updated with new page_url value (return visit)
  • Action: Bump priority, notify cadence owner
  • SLA: Respond within 4 hours

Rhythm’s AI will learn from your team’s engagement patterns and automatically surface identified visitors when they’re most likely to respond.


Cadence Templates for Identified Visitors

These templates are written specifically for people identified through website visits. The key advantage: you have behavioral context that cold outreach doesn’t have.

High-Intent Email 1 (Pricing Page)

Subject: {{company_name}} + [your company]

Hi {{first_name}},

I saw that {{company_name}} has been evaluating solutions in [your product category]. Given your role as {{title}}, I’m guessing you’re looking at [key buying criteria 1] and [key buying criteria 2].

We just helped [similar company] [achieve specific result] - would love to share the quick version of what worked if it’s useful.

Open to a 15-minute call this week?

Mid-Intent Email 1 (Feature Page)

Subject: {{first_name}} - quick resource on [feature area]

Hi {{first_name}},

I noticed {{company_name}} has been exploring [feature area they viewed]. We put together a short guide on how teams like yours are using [feature] to [achieve outcome].

Here’s the link: [resource URL]

If it’s helpful and you want to see how it would work specifically for {{company_name}}, happy to walk through it.

Low-Intent Email 1 (Blog Reader)

Subject: Related to [topic they read]

Hi {{first_name}},

You might find this interesting if you’re digging into [topic area]: [link to related content].

We’ve been working with [number] companies on this and seeing some patterns worth sharing. Let me know if [topic] is something {{company_name}} is actively working on.


Direct API Setup (For Engineering Teams)

If you prefer to skip Zapier and connect directly, here’s the Salesloft API approach:

Endpoint: Create Person

POST https://api.salesloft.com/v2/people
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Request Body

{
  "email_address": "{{email}}",
  "first_name": "{{first_name}}",
  "last_name": "{{last_name}}",
  "title": "{{job_title}}",
  "company_name": "{{company_name}}",
  "linkedin_url": "{{linkedin_url}}",
  "custom_fields": {
    "first_page_viewed": "{{page_url}}",
    "visit_duration": "{{visit_duration}}",
    "lead_source": "Leadpipe Visitor ID"
  }
}

Cadence Enrollment via API

After creating the person, enroll them in a cadence:

POST https://api.salesloft.com/v2/cadence_memberships
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "person_id": PERSON_ID_FROM_CREATION,
  "cadence_id": CADENCE_ID,
  "user_id": ASSIGNED_REP_ID
}

Node.js Example (Webhook Handler)

const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());

const SALESLOFT_API = 'https://api.salesloft.com/v2';
const API_KEY = process.env.SALESLOFT_API_KEY;

const CADENCES = {
  hot: 12345,    // Your pricing page cadence ID
  warm: 12346,   // Your feature page cadence ID
  nurture: 12347 // Your blog reader cadence ID
};

function getIntentLevel(pageUrl) {
  if (/\/(pricing|demo|contact|free-trial)/.test(pageUrl)) return 'hot';
  if (/\/(features|product|case-studies|integrations)/.test(pageUrl)) return 'warm';
  return 'nurture';
}

app.post('/webhook/leadpipe', async (req, res) => {
  const visitor = req.body;
  const intent = getIntentLevel(visitor.page_url || '');

  try {
    // Check for existing person
    const search = await axios.get(
      `${SALESLOFT_API}/people?email_addresses[]=${visitor.email}`,
      { headers: { Authorization: `Bearer ${API_KEY}` } }
    );

    let personId;
    if (search.data.data.length > 0) {
      personId = search.data.data[0].id;
    } else {
      // Create new person
      const person = await axios.post(
        `${SALESLOFT_API}/people`,
        {
          email_address: visitor.email,
          first_name: visitor.first_name,
          last_name: visitor.last_name,
          title: visitor.job_title,
          company_name: visitor.company_name,
          linkedin_url: visitor.linkedin_url
        },
        { headers: { Authorization: `Bearer ${API_KEY}` } }
      );
      personId = person.data.data.id;
    }

    // Enroll in cadence
    await axios.post(
      `${SALESLOFT_API}/cadence_memberships`,
      {
        person_id: personId,
        cadence_id: CADENCES[intent]
      },
      { headers: { Authorization: `Bearer ${API_KEY}` } }
    );

    res.json({ success: true, intent, personId });
  } catch (err) {
    console.error('Salesloft error:', err.response?.data || err.message);
    res.status(500).json({ error: err.message });
  }
});

app.listen(3000);

This gives you full control over deduplication, intent routing, and cadence enrollment in a single webhook handler. For teams processing high volumes, this approach is more reliable than Zapier and has zero per-execution costs.

For more on building custom API integrations, see the Visitor Identification API: Complete Developer Guide.


Measuring Results

Track these metrics in Salesloft Analytics to prove the integration’s value:

MetricWhat to TrackExpected Benchmark
Cadence enrollment ratePeople added per week from LeadpipeDepends on traffic volume
Open rateLeadpipe-sourced vs. cold cadences40-55% (vs. 25-35% cold)
Reply rateLeadpipe-sourced vs. cold8-15% (vs. 2-5% cold)
Meeting booked rateLeadpipe-sourced vs. cold3-7% (vs. 0.5-2% cold)
Speed to first touchTime from webhook to first cadence stepTarget: under 1 hour

Tag all Leadpipe-sourced people with “Leadpipe Visitor ID” as the lead source so you can segment reporting. Compare performance against your cold outbound cadences to quantify the lift.

Most teams see 3-5x higher reply rates from identified visitors compared to cold lists because the timing and relevance are fundamentally different. You’re reaching out to someone who just demonstrated interest, not interrupting a stranger.

For more on optimizing outreach to identified visitors, see the SDR playbook.


Common Mistakes

Treating identified visitors like cold prospects. Don’t use the same generic cadences. Identified visitors deserve personalized sequences that reference their behavior. Using the same templates for both wastes the intelligence you have.

Enrolling everyone in the hottest cadence. Not every visitor is bottom-of-funnel. A blog reader who gets an aggressive pricing cadence will unsubscribe. Match the cadence intensity to the page intent.

Ignoring deduplication. Check for existing people before creating new records. Duplicate cadence enrollment frustrates prospects and burns your domain reputation.

Not tracking lead source. Without tagging records, you can’t measure whether Leadpipe-sourced cadences outperform cold ones. The data is your justification for the tool.

Skipping LinkedIn steps. B2B prospects expect multi-channel outreach. A cadence with only emails is leaving the highest-converting channel (LinkedIn) on the table.


Reporting: Proving the Integration’s Value

Build a monthly report comparing Leadpipe-sourced cadences against your other lead sources. The data typically speaks for itself, but having the numbers documented makes it easy to justify continued investment.

Monthly report template:

LEADPIPE → SALESLOFT MONTHLY REPORT

People Added to Cadences: [number]
  - High-Intent Cadence: [number]
  - Mid-Intent Cadence: [number]
  - Low-Intent Cadence: [number]

Performance vs. Cold Outbound:
  - Open Rate: [X]% vs [Y]% (cold)
  - Reply Rate: [X]% vs [Y]% (cold)
  - Meeting Booked Rate: [X]% vs [Y]% (cold)
  - Pipeline Generated: $[amount]

Top Converting Pages:
  1. /pricing - [X]% reply rate
  2. /demo - [X]% reply rate
  3. /features - [X]% reply rate

Average Speed to First Touch: [X] hours

Share this report with your VP of Sales monthly. The consistent lift in reply rates and meeting booked rates makes the case for expanding the integration across more cadences and teams.


What’s Next

With Leadpipe data flowing into Salesloft, consider extending the stack:

  • Add Clay enrichment between identification and Salesloft for company size, revenue, and tech stack data
  • Set up Slack alerts for immediate team awareness alongside cadence enrollment
  • Layer Orbit intent data for pre-visit signals that inform cadence personalization
  • Build an AI SDR to draft personalized first touches automatically

Try Leadpipe free with 500 leads ->

Start your free trial - 500 leads, no credit card required ->