Skip to content
Skillv1.0.0

salesloft-core-workflow-b

Track SalesLoft activities, emails, calls, and analytics via the REST API. Use when reading email engagement data, logging call dispositions, or building sales activity dashboards. Trigger: "salesloft

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-b/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill salesloft-core-workflow-b. Copyright stays with the author (MIT).

SalesLoft Core Workflow B: Activities & Analytics

Overview

Track and analyze sales activities: emails sent/opened/clicked/replied, calls logged, and engagement metrics. Uses REST API v2 endpoints: /activities/emails.json, /activities/calls.json, /action_details/sent_emails.json.

Prerequisites

  • Completed salesloft-core-workflow-a
  • People and cadences already configured

Instructions

Step 1: List Email Activities

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

// Get email activities for a specific person
const { data: emails } = await api.get('/activities/emails.json', {
  params: {
    person_id: 1234,
    per_page: 50,
    sort_by: 'updated_at',
    sort_direction: 'DESC',
  },
});

emails.data.forEach((email: any) => {
  console.log(`${email.subject} | Status: ${email.status}`);
  console.log(`  Opens: ${email.counts.opens}, Clicks: ${email.counts.clicks}`);
  console.log(`  Replied: ${email.counts.replies > 0 ? 'Yes' : 'No'}`);
});

Step 2: Log Call Activities

// List calls with disposition data
const { data: calls } = await api.get('/activities/calls.json', {
  params: { per_page: 50, sort_by: 'created_at', sort_direction: 'DESC' },
});

calls.data.forEach((call: any) => {
  console.log(`${call.to} | Duration: ${call.duration}s`);
  console.log(`  Disposition: ${call.disposition}`);
  console.log(`  Sentiment: ${call.sentiment}`);
  console.log(`  Notes: ${call.notes || '(none)'}`);
});

Step 3: Build Engagement Dashboard

// Aggregate email engagement metrics across a cadence
async function cadenceEngagement(cadenceId: number) {
  let page = 1;
  const stats = { sent: 0, opened: 0, clicked: 0, replied: 0 };

  while (true) {
    const { data } = await api.get('/activities/emails.json', {
      params: { cadence_id: cadenceId, per_page: 100, page },
    });
    for (const email of data.data) {
      stats.sent++;
      if (email.counts.opens > 0) stats.opened++;
      if (email.counts.clicks > 0) stats.clicked++;
      if (email.counts.replies > 0) stats.replied++;
    }
    if (page >= data.metadata.paging.total_pages) break;
    page++;
  }

  return {
    ...stats,
    openRate: ((stats.opened / stats.sent) * 100).toFixed(1) + '%',
    clickRate: ((stats.clicked / stats.sent) * 100).toFixed(1) + '%',
    replyRate: ((stats.replied / stats.sent) * 100).toFixed(1) + '%',
  };
}

const metrics = await cadenceEngagement(500);
// { sent: 247, opened: 148, clicked: 32, replied: 19,
//   openRate: '59.9%', clickRate: '13.0%', replyRate: '7.7%' }

Step 4: Track Step-Level Performance

// Get steps for a cadence to see per-step analytics
const { data: steps } = await api.get('/steps.json', {
  params: { cadence_id: 500 },
});

steps.data.forEach((step: any) => {
  console.log(`Step ${step.day}: ${step.step_type} (${step.name})`);
  // step_type: 'email', 'phone', 'other', 'integration'
});

Output

Q1 Outbound Intro | Status: sent
  Opens: 3, Clicks: 1
  Replied: No
Cadence 500 Engagement:
  Sent: 247, Open: 59.9%, Click: 13.0%, Reply: 7.7%

Error Handling

Error Cause Solution
Empty activities/emails No emails sent yet Verify cadence is active with enrolled people
422 filter error Invalid filter param Check supported filter params in API docs
Slow pagination Large activity history Narrow date range with updated_at[gt]

Resources

Next Steps

For common errors, see salesloft-common-errors.

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-9760a6/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-9760a6.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-salesloft-cor-9760a6",
  "kind": "skill",
  "name": "salesloft-core-workflow-b",
  "description": "Track SalesLoft activities, emails, calls, and analytics via the REST API. Use when reading email engagement data, logging call dispositions, or building sales activity dashboards. Trigger: \"salesloft activities\", \"salesloft emails\", \"salesloft calls\", \"salesloft analytics\".",
  "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": [
    "Track SalesLoft activities, emails, calls, and analytics via the REST API. Use when reading email engagement data, logging call dispositions, or building sales activity dashboards. Trigger: \"salesloft activities\", \"salesloft emails\", \"salesloft calls\", \"salesloft analytics\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "skills/.curated/salesloft-core-workflow-b/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/skills/.curated/salesloft-core-workflow-b/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/skills/.curated/salesloft-core-workflow-b/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Write,",
      "Edit,",
      "Bash(npm:*),",
      "Grep"
    ],
    "license": "MIT"
  },
  "instructions": "# SalesLoft Core Workflow B: Activities & Analytics\n\n## Overview\n\nTrack and analyze sales activities: emails sent/opened/clicked/replied, calls logged, and engagement metrics. Uses REST API v2 endpoints: `/activities/emails.json`, `/activities/calls.json`, `/action_details/sent_emails.json`.\n\n## Prerequisites\n\n- Completed `salesloft-core-workflow-a`\n- People and cadences already configured\n\n## Instructions\n\n### Step 1: List Email Activities\n\n```typescript\nimport axios from 'axios';\nconst api = axios.create({\n  baseURL: 'https://api.salesloft.com/v2',\n  headers: { Authorization: `Bearer ${proce",
  "cost": {
    "context_tokens": 959
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-salesloft-cor-9760a6/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.