Releases: iPythoning/b2b-sdr-agent-template
v3.4.0 — WhatsApp IP Isolation
What's New
WhatsApp IP Isolation for Multi-Tenant Deployments
Each tenant now gets a unique Cloudflare exit IP for WhatsApp, preventing cross-account flagging when running multiple agents on the same server.
# Isolate a tenant's WhatsApp IP (one command):
./deploy/ip-isolate.sh acme-corpHow it works:
tenant-a → wireproxy :40001 → WARP Account A → Cloudflare IP-A
tenant-b → wireproxy :40002 → WARP Account B → Cloudflare IP-B
- Free Cloudflare WARP account per tenant (no cost)
- wireproxy userspace proxy (~4MB RAM each)
- Auto-injects
ALL_PROXYinto Docker container env - Supports both Docker multi-tenant and standalone modes
- Integrated into
deploy.shas step 8/8 (IP_ISOLATE=true)
New Files
| File | Description |
|---|---|
deploy/ip-isolate.sh |
One-command IP isolation script |
SKILL.md |
Root skill manifest for ClawHub |
Config Changes
# New options in config.sh:
IP_ISOLATE=true # Auto-run ip-isolate after deploy
IP_SOCKS_PORT="" # SOCKS5 port (auto-assigned if empty)Full Changelog
feat:deploy/ip-isolate.sh— per-tenant Cloudflare WARP proxyfeat: Integrated IP isolation as deploy step 8/8chore: AddedIP_ISOLATE,IP_SOCKS_PORTto config.sh.exampledocs: Architecture diagram and usage guide in README.md
v3.3.1 — OpenClaw 2026.4.1 Compatibility
What's Changed
Fixes compatibility issues introduced by OpenClaw 2026.4.1 update:
Bug Fixes
- Exec approval timeout: Deploy now writes
exec-approvals.jsonwithsecurity=fulldefaults, preventing gateway approval timeouts that blocked all tool execution - Telegram DM blocking: Changed default
dmPolicyfrom"pairing"to"open"so new contacts can message the bot directly - Stale gateway token: Re-deploys now run
openclaw gateway install --forceto refresh embedded tokens
Config Additions
tools.profile: "full"added to generatedopenclaw.jsonallowFrom: ["*"]added to Telegram channel configexec-approvals.jsonauto-generated with full permissions during deploy
Upgrade Notes
For existing deployments, run:
# On your server:
openclaw gateway install --force
openclaw gateway restartOr re-deploy with ./deploy.sh <client-name> to apply all fixes automatically.
v3.3.0 — Dual-Threshold Compression & Memory Ranking
What's New
Cherry-picked 3 ideas from OpenViking Memory Plugin (no new dependencies, no new services).
1. Dual-Threshold Compression
- 50% (BACKGROUND_SAVE): Non-blocking extraction of key facts to ChromaDB — protects critical data early
- 65% (COMPRESS): Full L2 compression via haiku-class model (existing behavior, unchanged)
- Backward-compatible:
TOKEN_THRESHOLDexport still works
2. Recency-Weighted Search Ranking
Replaced simple word-count scoring with 3-factor ranking:
- Lexical overlap (normalized 0-1) × 0.5
- Recency decay (30-day half-life, floor 0.5) × 0.3
- Tag boost (order +0.12, quote +0.10, commitment +0.10, objection +0.08)
Also fixed bug: score + 0.5 was a no-op (not assigned back).
3. Archive Expand Command
chroma:expand <turn_id>
View full original text of any compressed/archived turn by ID.
Config Change
softThresholdTokens: 12000 → 10000 (earlier flush hook trigger for dual-threshold)
Files Changed
| File | Change |
|---|---|
scripts/proactive-summary.mjs |
Dual-threshold logic |
skills/chroma-memory/chroma.mjs |
Ranking + expand + bugfix |
workspace/MEMORY.md |
Updated architecture docs |
v3.2.0 — Telegram Best Practices & Market-Adaptive Channels
What's New in v3.2.0
Telegram Upgraded to Strategic Channel
Telegram is no longer a "secondary channel" — it's now a full SDR-capable channel with unique advantages over WhatsApp.
New: skills/telegram-toolkit/
| Feature | Description |
|---|---|
| Bot Commands | /catalog, /quote, /status, /contact, /language — structured self-service |
| Inline Keyboards | One-tap BANT qualification (product → volume → timeline), 3-5x faster than free-text |
| Large File Routing | 2GB limit vs WhatsApp's 50MB — catalogs, certifications, video demos |
| Nurture Cadence | Full Telegram nurture sequence (Day 0 → Day 60+) with no window restrictions |
| Channel Broadcast | One-to-many product announcements via Telegram Channel |
Market-Adaptive Channel Priority
Channel priority now depends on the customer's market — no longer hardcoded:
| Market | Primary | Secondary |
|---|---|---|
| Africa / Latin America / South Asia | ||
| Middle East / Southeast Asia | Telegram | |
| Russia / CIS / Iran / Eastern Europe | Telegram | |
| Europe / Turkey | Telegram |
WhatsApp 72h Window Auto-Switch
New HEARTBEAT check (#13):
- 48h warning: Send follow-up on WhatsApp before window expires
- 72h expired: Auto-switch to Telegram (no window limit) or Email
- Never mark CRM as "contacted" if delivery actually failed
Other Changes
- WhatsApp corrected to "Business App" (not API) throughout documentation
- TOOLS.md Telegram section expanded from 2 lines to comprehensive guide
- README updated: 13 cron jobs, 7 pre-built skills
- All changes synced to
openclaw-delivery/_template
Full Changelog
a42980cfeat: Telegram best practices — market-adaptive channels, bot commands, inline keyboards721f120feat: upgrade to 4-layer anti-amnesia architecture (v2.0)92e6aeffeat: wire anti-amnesia operating protocol into workspace MD files
Telegram Quick Setup:
# 1. Get bot token from @BotFather
# 2. Edit config
TELEGRAM_ENABLED=true
TELEGRAM_BOT_TOKEN="your-token"
# 3. Deploy — done. Full SDR pipeline works on Telegram.v3.1.0 — 4-Layer Anti-Amnesia Architecture
What's New in v3.1.0
4-Layer Anti-Amnesia System (v2.0)
Your AI SDR now has a complete 4-layer memory system — it never forgets a customer, a quote, or a commitment.
Message In → L1 MemOS auto-recall (structured memory injection)
→ L3 ChromaDB per-turn store (customer-isolated, auto-tagged)
→ L2 Proactive Summary at 65% tokens (haiku compression)
→ L4 CRM Snapshot daily 12:00 (disaster recovery fallback)
| Layer | Engine | What It Does |
|---|---|---|
| L1: MemOS | Structured memory | Auto-extracts BANT, commitments, objections every turn |
| L2: Proactive Summary | Token monitoring | Compresses at 65% context usage, all numbers preserved verbatim |
| L3: ChromaDB | Per-turn vector store | Every turn stored with customer_id isolation + auto-tags |
| L4: CRM Snapshot | Daily backup | Pipeline state backup as disaster recovery fallback |
New Files
skills/chroma-memory/— Per-turn conversation storage with customer isolation, auto-tagging (quotes, commitments, objections, orders, samples), and CRM snapshot capabilityscripts/proactive-summary.mjs— Token usage monitoring + haiku-class compression trigger
Updated Workspace (7-Layer Context System)
- MEMORY.md — Full 4-layer operating protocol with data flow diagram, command reference, and priority matrix
- SOUL.md — 7-rule Memory Protocol (up from 5) with ChromaDB integration
- AGENTS.md — 4-layer memory management embedded in sales workflow
- HEARTBEAT.md — Now 12 automated checks (added Memory Health + CRM Snapshot)
- TOOLS.md — ChromaDB tool documentation added
- ANTI-AMNESIA.md — Upgraded to v2.0 with L4 chapter and 4-layer integration flow
Deployment Updates
chromadbadded to core skill profile (auto-installed)config.sh.examplenow includes ChromaDB configuration options- Compatible with OpenClaw container-per-tenant deployment
Full Changelog
721f120feat: upgrade to 4-layer anti-amnesia architecture (v2.0)92e6aeffeat: wire anti-amnesia operating protocol into workspace MD files624af79feat: add 3-layer Anti-Amnesia system for persistent customer memory83406f7security: comprehensive hardening based on production audit6585c97feat: open dmPolicy by default + control dashboard access3bf6b0efeat: upgrade to 10-stage pipeline with full automationef81d89fix: add missing CRM Entry stage to all 8 README translationscfbf869docs: add 8-language README support4f57b92Add ClawHub one-command install + fix git clone URLsc75a858Initial release: B2B SDR Agent Template
Quick Start:
# OpenClaw users
clawhub install b2b-sdr-agent
# Full deployment
git clone https://github.com/iPythoning/b2b-sdr-agent-template.git
cd b2b-sdr-agent-template/deploy
cp config.sh.example config.sh
# Edit config.sh, then:
./deploy.sh my-company