Skip to content
Skillv1.0.0

salesloft-core-workflow-a

Manage SalesLoft people, cadences, and email steps via the REST API. Use when building prospect management, enrolling people in cadences, or automating outbound sales sequences. Trigger: "salesloft ca

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (skills/.curated/salesloft-core-workflow-a/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill salesloft-core-workflow-a. Copyright stays with the author (MIT).

SalesLoft Core Workflow A: People & Cadences

Overview

The primary SalesLoft workflow: manage people records, build cadences (multi-step outbound sequences), and enroll prospects. Uses REST API v2 endpoints: /people.json, /cadences.json, /cadence_memberships.json, /steps.json.

Prerequisites

  • Completed salesloft-install-auth setup
  • Understanding of SalesLoft cadence model (cadences contain steps, people are enrolled via memberships)

Instructions

Step 1: Search and Deduplicate People

import axios from 'axios';
const api = axios.create({
  baseURL: 'https://api.salesloft.com/v2',
  headers: { Authorization: `Bearer ${process.env.SALESLOFT_API_KEY}` },
});

// Search by email to avoid duplicates (supports array filter)
async function findOrCreatePerson(email: string, attrs: Record<string, any>) {
  const { data: existing } = await api.get('/people.json', {
    params: { email_addresses: [email] },
  });

  if (existing.data.length > 0) {
    console.log(`Found existing: ${existing.data[0].id}`);
    return existing.data[0];
  }

  const { data: created } = await api.post('/people.json', {
    email_address: email, ...attrs,
  });
  console.log(`Created: ${created.data.id}`);
  return created.data;
}

Step 2: List and Select Cadences

// List cadences -- filter by team_cadence, current_state
const { data: cadences } = await api.get('/cadences.json', {
  params: { team_cadence: true, per_page: 50 },
});

// Each cadence has: id, name, current_state (draft|active|paused|archived)
// counts.people_count, cadence_framework_id, team_cadence
const activeCadences = cadences.data.filter(
  (c: any) => c.current_state === 'active'
);
console.log(`Active cadences: ${activeCadences.length}`);

Step 3: Enroll Person in Cadence

// Create a cadence membership to enroll a person
async function enrollInCadence(personId: number, cadenceId: number) {
  try {
    const { data } = await api.post('/cadence_memberships.json', {
      person_id: personId,
      cadence_id: cadenceId,
    });
    console.log(`Enrolled person ${personId} in cadence ${data.data.cadence.name}`);
    return data.data;
  } catch (err: any) {
    if (err.response?.status === 422) {
      console.warn('Person already enrolled or cadence not active');
    }
    throw err;
  }
}

Step 4: Bulk Import with Cadence Assignment

// Import a CSV of prospects and enroll in a cadence
async function bulkEnroll(prospects: Array<{ email: string; name: string }>, cadenceId: number) {
  const results = { enrolled: 0, skipped: 0, errors: 0 };

  for (const prospect of prospects) {
    try {
      const [first, ...rest] = prospect.name.split(' ');
      const person = await findOrCreatePerson(prospect.email, {
        first_name: first, last_name: rest.join(' '),
      });
      await enrollInCadence(person.id, cadenceId);
      results.enrolled++;
    } catch {
      results.errors++;
    }
  }
  return results; // { enrolled: 47, skipped: 2, errors: 1 }
}

Output

Found existing: 1234
Created: 5678
Enrolled person 5678 in cadence Q1 Outbound
Active cadences: 3
Bulk result: { enrolled: 47, skipped: 2, errors: 1 }

Error Handling

Error Cause Solution
422 on create person Missing email_address Required field
422 on enrollment Person already in cadence Check memberships first
404 cadence Cadence archived or deleted Verify cadence current_state
429 bulk import Rate limit (600 cost/min) Add delay between batches

Resources

Next Steps

For activity tracking and email analytics, see salesloft-core-workflow-b.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-salesloft-cor-ffbfcf/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-salesloft-cor-ffbfcf.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-salesloft-cor-ffbfcf",
  "kind": "skill",
  "name": "salesloft-core-workflow-a",
  "description": "Manage SalesLoft people, cadences, and email steps via the REST API. Use when building prospect management, enrolling people in cadences, or automating outbound sales sequences. Trigger: \"salesloft cadence\", \"salesloft people\", \"salesloft outbound sequence\".",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "saas",
      "sales",
      "outreach",
      "salesloft",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Manage SalesLoft people, cadences, and email steps via the REST API. Use when building prospect management, enrolling people in cadences, or automating outbound sales sequences. Trigger: \"salesloft cadence\", \"salesloft people\", \"salesloft outbound sequence\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "skills/.curated/salesloft-core-workflow-a/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/skills/.curated/salesloft-core-workflow-a/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/skills/.curated/salesloft-core-workflow-a/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Write,",
      "Edit,",
      "Bash(npm:*),",
      "Grep"
    ],
    "license": "MIT"
  },
  "instructions": "# SalesLoft Core Workflow A: People & Cadences\n\n## Overview\n\nThe primary SalesLoft workflow: manage people records, build cadences (multi-step outbound sequences), and enroll prospects. Uses REST API v2 endpoints: `/people.json`, `/cadences.json`, `/cadence_memberships.json`, `/steps.json`.\n\n## Prerequisites\n\n- Completed `salesloft-install-auth` setup\n- Understanding of SalesLoft cadence model (cadences contain steps, people are enrolled via memberships)\n\n## Instructions\n\n### Step 1: Search and Deduplicate People\n\n```typescript\nimport axios from 'axios';\nconst api = axios.create({\n  baseURL: '",
  "cost": {
    "context_tokens": 1022
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-salesloft-cor-ffbfcf/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.