AI SDR Playbook — run outbound as an agent

LDM turns your AI agent into a working SDR. This page is the role description and the end-to-end operating procedure: every stage maps to concrete `/api/*` endpoints (all of them are also exposed as MCP tools — see the agent card). A human can follow along in the web UI at app.live-direct-marketing.online: everything the agent does is visible and editable by hand.

Built for AI agents — bring yours

You are in the right place: LDM is agent-friendly by design. There is no separate "robot API" — your agent uses the same surface as the human UI, with its own scoped key. Works out of the box with:

  • Claude Desktop / Claude Code — connect the `ldm-crm-mcp` MCP server and install the Claude Skills pack (38 ready SKILL.md files).
  • Cursor / Windsurf / any MCP client — the same MCP server, same key.
  • Custom agents (OpenAI SDK, LangChain, your own code) — plain REST + OpenAPI + `agent-card.json` discovery.
  • Agent-to-agent — A2A protocol endpoint for orchestrator agents.
  • You (human) — the full web UI at app.live-direct-marketing.online: everything the agent does is visible, auditable and editable by hand.

Getting started takes three steps: 1) sign up — a scoped ldm_* key is issued automatically; 2) plug the key into your agent (MCP config below or plain Bearer header); 3) hand the agent this playbook and the skills pack. Dangerous capabilities (actually sending mail) stay off until you grant the scopes yourself in Settings → API Keys.

The SDR role, defined

An SDR owns the top of the sales funnel: finding target companies and people, reaching out cold (compliantly), spotting interest in replies, qualifying, and handing warm leads to a human closer. As an agent you do all of it through the API with your scoped ldm_* key. Your default signup key is read+draft only — the workspace owner expands scopes (Settings → API Keys) as trust grows; email:send and mailing:write are deliberately manual grants.

Stage 1 — Prospecting: build the account & contact base

  • POST /api/companies / POST /api/companies/import — create or bulk-import target accounts (CSV, Google Sheets, combined import).
  • POST /api/companies/:id/enrich-from-inn, GET /api/connectors/dadata — enrich requisites and firmographics.
  • POST /api/contacts + channels — decision-makers; a person is not an email, channels attach separately.
  • POST /api/email-verification/verify-batch — verify addresses before any outreach; drop invalid ones.
  • POST /api/company-lists / contact-lists (+ groups) — segment into named lists; lists are the unit every campaign consumes.
  • Hybrid mode: the LDM Chrome side-panel extension scores the page a human is browsing against the ICP, captures emails and drafts a message on the spot — the agent feeds it queues via /api/icp-tasks and harvests results (see the ICP Review Dispatcher skill).

Stage 2 — Compliance gate (non-negotiable)

  • GET /api/stop-list/check and GET /api/suppression/check — never mail a stopped or suppressed address/domain.
  • GET /api/anti-spam rules of the workspace — respect send limits, warmup schedules and provider blocks (see Anti-spam).
  • One test message to yourself before any bulk send. Bulk actions against external services can email real third parties — treat every send as irreversible.

Stage 3 — Creatives: what you will say

  • POST /api/briefs — capture the offer, ICP and tone as a structured brief.
  • POST /api/creatives + creative bank — generate spintax variants per segment; personalization variables resolve per contact.
  • POST /api/creatives/:id/checklist/qc — run the QC gate; only QC-passed creatives go to campaigns.
  • POST /api/creatives/:id/test-send — send the test to your own inbox and read it as a human would.

Stage 4 — Campaign: launch and monitor

  • POST /api/campaignsPOST /api/campaigns/:id/pour with an explicit {"listId": …} (an empty body pours the ENTIRE base — never do that) → preparescreensend.
  • GET /api/campaigns/:id/metrics and /recipients — delivery, opens, replies, bounces per stage of the recipient state machine.
  • Campaigns may require human approval before sending (auto-approve is a per-user admin setting). If your workspace requires it, request approval and wait.
  • Full lifecycle reference: Mailing Campaign and Tasks.

Stage 5 — Inbox: work every reply

  • GET /api/dialogs?folder=inbox — poll the unified inbox; every outbound thread and reply lands here.
  • POST /api/dialogs/:id/classify-reply — AI-classify: interested / not now / unsubscribe / bounce / out-of-office.
  • POST /api/dialogs/:id/actions/unsubscribe|bounce|stop-list — honor negative signals immediately.
  • POST /api/dialogs/:id/reply (needs dialogs:write) — answer interested prospects; keep threads human-quality.

Stage 6 — Qualify & hand off

  • POST /api/dialogs/:id/create-lead — promote an interested reply to a lead, linked to its dialog history.
  • PATCH /api/leads/:id/move + /interest — advance the kanban stage, set interest level, attach the dossier (GET /api/leads/:id/dossier).
  • Hand off: assign to a human, drop a summary comment (what they want, budget signals, next step), and notify. The human sees the full thread in the UI.

Workspace limits (self-signup)

  • 50MB database quota — over quota, POST/PUT/PATCH return 403 while reads and DELETE keep working. Prune imports or ask the admin to raise it.
  • One self-service signup auto-activates per hour platform-wide; later signups wait for admin approval.
  • Default key scopes are read + safe drafts. email:send, mailing:write, dialogs:write are granted by the workspace owner in Settings → API Keys.

Machine-readable entry points

  • GET https://developers.live-direct-marketing.online/sdr-playbook.md — this page as raw markdown.
  • GET https://developers.live-direct-marketing.online/llms.txt — the whole portal for LLM consumption.
  • GET https://api.live-direct-marketing.online/.well-known/agent-card.json — every capability with its scope.
  • https://www.npmjs.com/package/ldm-crm-mcp — the MCP server package for Claude / Cursor.