B2B SDR Agent
A multi-channel sales-development template that moves export leads from first contact through qualification, quoting, follow-up, and handoff.
- Source repo
- iPythoning/b2b-sdr-agent-template
- Stars
- ★ 188
- Last updated
- 1mo ago
- License
- MIT
- Primary language
- Shell
- FA score
- 52/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformOpenAI API · Claude API
- Cost
- Free tier plus a paid hosted plan
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- An exporter receiving substantial WhatsApp inquiry volume wants automatic lead records, qualification, and rapid owner alerts.
- Not a fit if
- Teams unwilling to deploy and maintain a Linux sales service
- Organizations requiring a fully offline sales workflow
- Businesses that require the bot to disclose its AI identity
- Source review
- 52/100 · Major gaps
What does this agent do, and when should you use it?
B2B SDR Agent is an OpenClaw-based template for export businesses handling prospects through WhatsApp, Telegram, and email. Its operating context is split across IDENTITY.md, SOUL.md, AGENTS.md, USER.md, HEARTBEAT.md, MEMORY.md, and TOOLS.md, with a ten-stage workflow spanning lead capture through multi-channel orchestration. It creates CRM records, conducts BANT qualification, enriches companies, produces multilingual PDF quotations, tracks negotiations, and schedules pipeline reporting and nurture activity. Memory is divided among MemOS extraction, proactive summarization, customer-isolated ChromaDB turn storage, and daily CRM snapshots. It can be installed as an OpenClaw skill through ClawHub or deployed as a service on a Linux server, where OpenClaw Gateway connects the channels and exposes a token-protected control dashboard. The code is MIT-licensed, while a separate managed PulseAgent offering is also promoted.
On inbound WhatsApp, Telegram, CTWA-ad, or email activity, the workflow identifies a lead and builds a CRM record containing fields such as name, company, country, product interest, and ICP score. It conducts BANT qualification in conversation and can run a three-layer enrichment process using Jina AI web search and company-site analysis; high-scoring leads are flagged for the owner. quotation-generator reads product specifications, MOQ, and lead times from the product knowledge base to create multilingual PDF proforma invoices for owner approval. delivery-queue and sdr-humanizer govern message splitting, 3–90 second delays, timezone handling, and cultural adaptation, while Day 1/3/7/14 email sequences manage follow-up. MemOS extracts BANT facts, commitments, and objections; ChromaDB stores each turn under customer_id; proactive summarization starts at 65% context use; and a daily CRM snapshot supplies disaster recovery. Scheduled checks also cover Gmail replies, pipeline reports, lead discovery, stalled opportunities, competitor intelligence, memory health, Teams mentions, and switching to Telegram when a WhatsApp 72-hour window expires.
- An exporter receiving substantial WhatsApp inquiry volume wants automatic lead records, qualification, and rapid owner alerts.
- A sales team needs multilingual PDF proforma invoices generated from governed specifications, MOQ, and lead-time data, with human approval.
- A company selling through WhatsApp, Telegram, and email wants coordinated follow-ups and channel switching after the WhatsApp window expires.
- A long-cycle B2B team needs quotations, objections, promises, and customer state preserved across sessions and system restarts.
- A service operator hosting agents for several customers needs separate workspaces, configurable remote paths, and per-tenant WhatsApp exit IPs.
How do you install or deploy this agent?
For an existing OpenClaw installation, install the skill from ClawHub:
clawhub install b2b-sdr-agentThen edit the company identity and customer profile, optionally copying all seven context files into the main workspace:
vim ~/.openclaw/workspace/skills/b2b-sdr-agent/references/IDENTITY.md
vim ~/.openclaw/workspace/skills/b2b-sdr-agent/references/USER.md
cp ~/.openclaw/workspace/skills/b2b-sdr-agent/references/*.md ~/.openclaw/workspace/A full deployment requires a Linux server, Node.js 18+, and an API key for at least one supported model provider; a WhatsApp Business account is optional but recommended. Clone the repository and replace the workspace placeholders with business information:
git clone https://github.com/iPythoning/b2b-sdr-agent-template.git
cd b2b-sdr-agent-template
vim workspace/IDENTITY.md
vim workspace/USER.md
vim workspace/SOUL.mdCreate the deployment configuration and supply the server address, PRIMARY_API_KEY, channel credentials, Google Sheets CRM identifier, and administrator phone details as applicable:
cd deploy
cp config.sh.example config.sh
vim config.shValidate the template before deployment:
cd ..
npm testDeploy an instance named my-company and run the remote health checks:
cd deploy
./deploy.sh my-company
./doctor.shHow do you use this agent?
Populate workspace/IDENTITY.md, USER.md, and SOUL.md with the company, catalog, ICP, competitors, and conversation policies. Maintain product specifications, MOQ, and lead times in product-kb/catalog.json and the product info.json files. Once the model and channel credentials are configured and OpenClaw Gateway is running, inbound WhatsApp, Telegram, and email conversations enter the ten-stage workflow. Open the dashboard using the address and token printed by deployment:
http://YOUR_SERVER_IP:18789/?token=YOUR_GATEWAY_TOKENThe dashboard exposes bot state, WhatsApp connectivity, conversation threads, cron execution, and channel health, so its URL and token must remain private. To prevent network access to it, configure deploy/config.sh as follows:
GATEWAY_BIND="loopback"WhatsApp direct messages can use open, allowlist, or pairing policy. The documented default accepts every contact:
{
"channels": {
"whatsapp": {
"dmPolicy": "open",
"allowFrom": ["*"]
}
}
}Restart the gateway after changing the live configuration:
systemctl --user restart openclaw-gatewayFor a multi-tenant server, assign an instance a dedicated WhatsApp exit IP:
./deploy/ip-isolate.sh acme-corpWhat are this agent's strengths and limitations?
- The template specifies an operational path from intake and BANT through research, quotation, negotiation, nurture, and channel coordination instead of offering only prompts.
- Its four memory layers combine structured extraction, context compression, customer-isolated turn storage, and daily CRM disaster-recovery snapshots.
- It includes concrete capabilities such as quotation-generator, delivery-queue, lead-discovery, and sdr-humanizer, plus configurations for three export industries.
- npm test, GitHub Actions CI, and deploy/doctor.sh provide checks before and after deployment across configuration, Gateway health, and Chroma memory.
- The model configuration accepts multiple API providers, and deployment supports non-root accounts and configurable remote OpenClaw paths.
- The full system requires a Linux server, Node.js, OpenClaw, a model API key, and potentially several channel and CRM credentials, creating more operational work than a single SaaS product.
- WhatsApp DMs are open by default and the dashboard defaults to LAN access, so contact policy, tokens, and network boundaries require deliberate hardening.
- Cross-session continuity depends on several moving parts—MemOS, ChromaDB, summarization, and scheduled snapshots—which increases troubleshooting and governance complexity.
- Adopters must customize seven Markdown context layers, the product knowledge base, ICP scoring, and sales rules before the template reflects their business.
- The rule to present the system as a sales consultant and never reveal its AI identity may conflict with organizational transparency policies or local requirements.
How does this agent compare with similar options?
For users of Hermes Agent rather than OpenClaw, the project points to the separate b2b-sdr-hermes-skill, which adapts the same ten-stage pipeline to Hermes conventions; existing OpenClaw users are told to run hermes claw migrate before installing it. Compared with the promoted PulseAgent managed service, this repository provides the self-hosted and self-configured route, while PulseAgent advertises one-click deployment, analytics, multi-channel management, and priority support.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| B2B SDR Agent This agent | 52 · Major gaps | Agent plugin / skillFreemium | ★ 188 | 1mo ago | Shell | OpenAI API · Claude API |
| OpenOutreach | 62 · Some gaps | CLIFree + model costs | ★ 3.1k | 2d ago | Python | OpenAI API · Claude API |
| Octopal | 61 · Some gaps | Desktop appFree + model costs | ★ 10 | 1mo ago | Python | Codex · Claude Code · OpenAI API · Claude API |
| Brigade — Enterprise-grade personal intelligence | 59 · Major gaps | CLIFree + model costs | ★ 6.8k | 11d ago | TypeScript | ChatGPT · Codex · Claude Code · OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
The materials disclose the principal channels, CRM, memory systems, scheduled outreach, dashboard, and resulting external actions. They also recommend protected secret storage, log redaction, TLS, firewalling, administrator numbers, and loopback binding. Deductions apply because WhatsApp accepts all direct messages by default, the dashboard defaults to LAN exposure, automated cold outreach and follow-ups lack per-send confirmation, and the agent is instructed never to disclose its AI identity. Owner approval is described for quotations but not for other consequential sends. Dependencies are named without lockfiles, version constraints, vulnerability scanning, or supply-chain controls. CRM snapshots offer limited recovery, but there is no message recall, campaign undo, or deployment rollback procedure. PulseAgent, OpenClaw, and third-party services are attributed, although dependency provenance and versions remain incomplete.
The README, package metadata, and workflow identify a Node.js requirement and a static validation entry point, but the validation implementation, runtime recovery behavior, and user-facing failure messages are not shown. Internal inconsistencies include an architecture claiming 13 cron jobs while the table lists only 8, and memory being described both as three engines and four layers. Claims such as five-minute deployment, production readiness, and zero information loss are unsupported by the supplied files. Self-consistency and dependency availability are therefore thin, while failure-message handling has no evidence.
The audience, B2B export workflow, regions, channels, and three industry examples are clearly specified, with lite, social, full, and b2b_trade profiles supporting different use cases. Deployment prerequisites, channel policies, administrator settings, and security options provide reasonable environmental guidance and some capability boundaries. Deductions reflect an incomplete trigger schedule, broad descriptions of automated behavior, and insufficient boundaries for jurisdictional compliance, provider restrictions, consent management, and degraded operation when integrations are unavailable.
The documentation is well organized across architecture, quick start, configuration, deployment, skills, product knowledge, examples, security, and contribution guidance. Both installation paths contain substantial commands and prerequisites. The full MIT text agrees with package metadata, justifying full license credit. Deductions apply for unstable terminology and counts, no real FAQ, sparse known limitations, no migration guidance or changelog, and a version policy that states only that the latest release is supported. PulseAgent attribution, contribution guidance, and a security mailbox indicate maintenance responsibility, but the supplied evidence does not verify publisher identity or define a detailed release-maintenance lifecycle.
The proposed outputs—CRM records, quotation PDFs, pipeline reports, alerts, email sequences, and a monitoring dashboard—are operationally usable in principle, and combining sales stages with multiple channels offers plausible incremental value. Deductions apply because no actual output artifacts, quality measures, user outcomes, or comparative evidence are supplied. Server hosting, model APIs, third-party memory services, proxies, and channel accounts imply material cost and operational overhead, yet resource requirements and benefit tradeoffs are not quantified.
Some claims reference concrete filenames, configuration keys, commands, and ANTI-AMNESIA.md, while the license, Node requirement, and read-only CI permissions receive limited cross-file support. Most functional claims cannot be traced because the supplied evidence omits the core implementation, validation script, example outputs, and referenced specification. Cross-source corroboration is largely confined to metadata and security advice. Marketing claims, intended design, and verified results are not separated: real-world testing, production readiness, never forgetting, zero information loss, and five-minute deployment are presented without supporting evidence or uncertainty labels.
- Before enabling automated outreach, add human approval gates, rate limits, unsubscribe handling, consent records, and jurisdiction-specific anti-spam review.
- Do not retain the LAN dashboard and open WhatsApp direct-message defaults without review; prefer loopback binding, TLS, access controls, firewall restrictions, and regular token rotation.
- The instruction to conceal the agent's AI identity creates transparency, consumer-protection, platform-policy, and commercial-communications compliance risks.
- Customer conversations, BANT data, quotations, and CRM snapshots may traverse several stores or third-party services; confirm retention, deletion, tenant isolation, data residency, and vendor agreements before deployment.
- Verify the actual cron inventory, memory architecture, dependency versions, validation script, failure-recovery procedures, and backup restorability before production use.