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-tasksand harvests results (see the ICP Review Dispatcher skill).
Stage 2 — Compliance gate (non-negotiable)
GET /api/stop-list/checkandGET /api/suppression/check— never mail a stopped or suppressed address/domain.GET /api/anti-spamrules 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/campaigns→POST /api/campaigns/:id/pourwith an explicit{"listId": …}(an empty body pours the ENTIRE base — never do that) →prepare→screen→send.GET /api/campaigns/:id/metricsand/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(needsdialogs: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:writeare 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.