← 返回 Skills 市场
danielfoch

Crm Snail Mail Postgrid

作者 danielfoch · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
266
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install crm-snail-mail-postgrid
功能描述
Send physical mail from CRM contacts using PostGrid. Use when pulling contacts from GoHighLevel (GHL) or Follow Up Boss (FUB), mapping contact/address fields...
使用说明 (SKILL.md)

CRM Snail Mail via PostGrid

Use this skill to run targeted direct-mail outreach from CRM contacts.

Workflow

  1. Pick source: ghl, fub, or pre-exported contact JSON.
  2. Pull and normalize contacts into a common schema.
  3. Filter to records with mailable addresses.
  4. Build personalized message content.
  5. Submit jobs to PostGrid (letters or postcards) with dry-run available.
  6. Return send summary with success/failure per contact.

Script

  • scripts/crm_postgrid_mailer.py Purpose: Pull contacts from GHL/FUB (or load from JSON), normalize fields, render templates, and send to PostGrid.
  • scripts/postgrid_api.py Purpose: Full PostGrid API utility with broad endpoint catalog and call-raw fallback for any documented endpoint.

Environment Variables

  • GHL_API_KEY: GHL API key/token.
  • GHL_BASE_URL (optional): defaults to https://services.leadconnectorhq.com.
  • FUB_API_KEY: Follow Up Boss API key.
  • FUB_BASE_URL (optional): defaults to https://api.followupboss.com/v1.
  • POSTGRID_API_KEY: PostGrid API key.
  • POSTGRID_BASE_URL (optional): defaults to https://api.postgrid.com/print-mail/v1.

Typical Commands

List full PostGrid endpoint catalog included in this skill:

python3 scripts/postgrid_api.py list-endpoints

Call a cataloged PostGrid endpoint:

python3 scripts/postgrid_api.py call contacts.list

Call any PostGrid endpoint directly (full docs coverage fallback):

python3 scripts/postgrid_api.py call-raw GET /letters \
  --base-url https://api.postgrid.com/print-mail/v1

Normalize contacts from FUB to JSON:

python3 scripts/crm_postgrid_mailer.py fetch \
  --provider fub \
  --limit 200 \
  --output /tmp/fub_contacts_normalized.json

Normalize contacts from GHL to JSON:

python3 scripts/crm_postgrid_mailer.py fetch \
  --provider ghl \
  --location-id "$GHL_LOCATION_ID" \
  --limit 200 \
  --output /tmp/ghl_contacts_normalized.json

Dry-run PostGrid payload generation:

python3 scripts/crm_postgrid_mailer.py send \
  --contacts-file /tmp/ghl_contacts_normalized.json \
  --from-json-file references/example_sender_us.json \
  --html-template-file references/example_letter_template.html \
  --mail-route letters \
  --dry-run

Fetch + send in one command:

python3 scripts/crm_postgrid_mailer.py run \
  --provider fub \
  --limit 100 \
  --from-json-file references/example_sender_us.json \
  --html-template-file references/example_letter_template.html \
  --mail-route letters \
  --output /tmp/mail_send_summary.json

Send one ad-hoc mailer from raw address + content:

python3 scripts/crm_postgrid_mailer.py one-off \
  --to-name "Jane Seller" \
  --to-address1 "742 Evergreen Terrace" \
  --to-city "Springfield" \
  --to-state "IL" \
  --to-postal-code "62704" \
  --from-json-file references/example_sender_us.json \
  --content-text "Hi Jane,\
\
I'd love to send you a fresh home valuation this week.\
\
Best,\
Daniel" \
  --mail-route letters \
  --dry-run

Use JSON exported by another GHL/FUB skill:

python3 scripts/crm_postgrid_mailer.py run \
  --contacts-file /tmp/contacts_from_other_skill.json \
  --from-json-file references/example_sender_us.json \
  --html-template-file references/example_letter_template.html \
  --mail-route letters

Data Contract

Normalized contact shape:

  • id
  • first_name
  • last_name
  • full_name
  • email
  • phone
  • address1
  • address2
  • city
  • state
  • postal_code
  • country
  • tags
  • raw

Contacts missing address1, city, state, or postal_code are skipped by default.

Integration Notes

  • If dedicated GHL/FUB skills exist and already return contact JSON, pass that file with --contacts-file and skip API pulling.
  • If APIs change, adjust mapping candidates in scripts/crm_postgrid_mailer.py instead of rewriting workflow.
  • Use --postgrid-route when account-specific PostGrid routes differ from defaults.

PostGrid Safety

  • Start with --dry-run to inspect generated payloads.
  • Keep --max-send during first live run (for example --max-send 10).
  • Include clear campaign metadata using --description.

See references/postgrid-notes.md for route/header assumptions and override strategy.

安全使用建议
This skill's code matches its description, but take these precautions before installing or running it: 1) The SKILL.md and scripts expect API keys for GoHighLevel, Follow Up Boss, and PostGrid — the registry metadata omitted those; don't assume no credentials are needed. 2) The scripts will transmit contact PII (names, addresses, phone, email) to PostGrid — only provide a PostGrid API key you trust and prefer a dedicated/test account with minimal permissions and spending limits. 3) The postgrid_api exposes a raw-caller and many endpoints (bank accounts, webhooks, campaigns) — avoid using a high-privilege PostGrid key; prefer keys scoped to print-mail only. 4) Start with the provided --dry-run and a small --max-send to validate payloads. 5) If you need assurance, review the included Python files yourself or run them in a controlled environment with test credentials. The metadata omission lowers confidence in packaging hygiene; if possible ask the publisher to correct registry env declarations.
功能分析
Type: OpenClaw Skill Name: crm-snail-mail-postgrid Version: 0.1.0 The skill bundle provides a legitimate integration for sending physical mail via PostGrid using contact data from GoHighLevel (GHL) or Follow Up Boss (FUB). The scripts (crm_postgrid_mailer.py and postgrid_api.py) use standard Python libraries for HTTP requests and handle sensitive API keys through environment variables or command-line arguments as expected for this type of integration. No evidence of data exfiltration, malicious execution, or prompt injection was found; the code is transparent, well-documented, and includes safety features like dry-run modes.
能力评估
Purpose & Capability
Name, description, SKILL.md, and included scripts are coherent: the Python tools fetch contacts from GHL or FUB, normalize addresses, render templates, and submit jobs to PostGrid. However, registry metadata declares no required environment variables while SKILL.md and the code clearly expect GHL/FUB/POSTGRID API keys (metadata omission).
Instruction Scope
Runtime instructions stay within the advertised workflow (fetch/normalize/filter/render/send). They explicitly allow loading external JSON contact files and include a 'call-raw' capability to invoke arbitrary PostGrid endpoints. That fall-back is powerful and will transmit contact PII to external PostGrid endpoints (intended) — so it's within purpose but expands what the agent can do beyond only sending letters/postcards.
Install Mechanism
No install spec (instruction-only with bundled Python scripts). Nothing is downloaded from third-party URLs and no new binaries are installed by the skill itself.
Credentials
The code and SKILL.md require GHL_API_KEY, FUB_API_KEY, POSTGRID_API_KEY and optional base URLs, which are appropriate for the task. The registry metadata, however, lists no required env vars/credentials — an inconsistent/omitted declaration that could mislead users into running the skill without realizing it needs sensitive API keys. Also, the included PostGrid helper can call many endpoints (bank account, webhooks, campaigns, etc.), so you should use minimally-scoped PostGrid credentials.
Persistence & Privilege
The skill is not forced-always and does not request persistent system privileges. It does not modify other skills' configs or ask for system-wide credentials.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install crm-snail-mail-postgrid
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /crm-snail-mail-postgrid 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
crm-snail-mail-postgrid v0.1.0 – Initial release - Enables sending personalized physical mail (letters or postcards) from CRM contacts via PostGrid. - Supports contacts from GoHighLevel (GHL), Follow Up Boss (FUB), or pre-exported JSON files. - Normalizes, filters, and processes contact data to generate and submit mail jobs. - Includes dry-run capability for payload inspection and real send limiting for safer operations. - Provides command-line utilities for mail job creation, template rendering, direct API calls, and contact exporting. - Detailed environment variable and usage instructions included for all core workflows.
元数据
Slug crm-snail-mail-postgrid
版本 0.1.0
许可证
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Crm Snail Mail Postgrid 是什么?

Send physical mail from CRM contacts using PostGrid. Use when pulling contacts from GoHighLevel (GHL) or Follow Up Boss (FUB), mapping contact/address fields... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 266 次。

如何安装 Crm Snail Mail Postgrid?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install crm-snail-mail-postgrid」即可一键安装,无需额外配置。

Crm Snail Mail Postgrid 是免费的吗?

是的,Crm Snail Mail Postgrid 完全免费(开源免费),可自由下载、安装和使用。

Crm Snail Mail Postgrid 支持哪些平台?

Crm Snail Mail Postgrid 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Crm Snail Mail Postgrid?

由 danielfoch(@danielfoch)开发并维护,当前版本 v0.1.0。

💬 留言讨论