agentsclimarketplace

Salesloft hello world

Skill jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/salesloft-pack/skills/salesloft-hello-world

Create a minimal working SalesLoft example \u2014 list people and create\ \ a person. Use when starting a new SalesLoft integration, testing your setup, \ or learning the People and Cadences API patterns. Trigger: "salesloft hello world"\ , "salesloft example", "salesloft quick start".From its SKILL.md

Install
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill salesloft-hello-world

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

3.8 KB, 860 tokens by cl100k_base, as published. Nobody here has run it

SalesLoft Hello World

Overview

List people and create a new person — the two fundamental SalesLoft API operations. Uses the REST API v2 at https://api.salesloft.com/v2/. All endpoints return JSON with a data wrapper and support pagination via page and per_page params.

Prerequisites

  • Valid OAuth token or API key (see salesloft-install-auth)
  • SALESLOFT_API_KEY environment variable set

Instructions

Step 1: List People

import axios from 'axios';

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

// List people — returns paginated results
const { data } = await api.get('/people.json', {
  params: { per_page: 25, page: 1 },
});

console.log(`Total people: ${data.metadata.paging.total_count}`);
data.data.forEach((person: any) => {
  console.log(`  ${person.display_name} <${person.email_address}>`);
});

Step 2: Create a Person

// Create a new person record
const { data: created } = await api.post('/people.json', {
  email_address: '[email protected]',
  first_name: 'Alex',
  last_name: 'Johnson',
  title: 'VP Engineering',
  company_name: 'Acme Corp',
  phone: '+1-555-0100',
  city: 'Austin',
  state: 'TX',
  custom_fields: {
    lead_source: 'website',
  },
});

console.log(`Created person: ${created.data.id} — ${created.data.display_name}`);

Step 3: Add Person to a Cadence

// First, list available cadences
const { data: cadences } = await api.get('/cadences.json', {
  params: { per_page: 10 },
});
const cadenceId = cadences.data[0].id;

// Add person to cadence
const { data: membership } = await api.post('/cadence_memberships.json', {
  person_id: created.data.id,
  cadence_id: cadenceId,
});
console.log(`Added to cadence: ${membership.data.cadence.name}`);

Output

Total people: 1,247
  Alex Johnson <[email protected]>
Created person: 98765 — Alex Johnson
Added to cadence: Q1 Outbound Sequence

Error Handling

ErrorCauseSolution
422 Unprocessable EntityMissing required field (email)Ensure email_address is provided
409 ConflictDuplicate email addressSearch existing people first with ?email_addresses[]=
401 UnauthorizedInvalid/expired tokenRefresh OAuth token
429 Too Many RequestsRate limit exceeded (600 cost/min)Back off and retry after Retry-After header

Examples

Search People by Email

const { data } = await api.get('/people.json', {
  params: { email_addresses: ['[email protected]'] },
});

Update a Person

await api.put(`/people/${personId}.json`, {
  title: 'CTO',
  company_name: 'New Corp',
});

List Activities for a Person

const { data: activities } = await api.get('/activities/emails.json', {
  params: { person_id: personId, per_page: 50 },
});

Resources

Next Steps

Proceed to salesloft-local-dev-loop for development workflow setup.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.