← 返回
沟通协作 Key 中文

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...
通过PostGrid从CRM联系人发送实体邮件。适用于从GoHighLevel(GHL)或Follow Up Boss(FUB)提取联系人、映射联系人/地址字段……
danielfoch
沟通协作 clawhub v0.1.0 1 版本 99839.7 Key: 需要
★ 0
Stars
📥 623
下载
💾 11
安装
1
版本
#latest

概述

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,\n\nI'd love to send you a fresh home valuation this week.\n\nBest,\nDaniel" \
  --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.

版本历史

共 1 个版本

  • v0.1.0 当前
    2026-03-30 16:40 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

communication-collaboration

imap-smtp-email

gzlicanyi
使用IMAP/SMTP读取和发送邮件;检查新/未读邮件、获取内容、搜索邮箱、标记已读/未读、发送带附件的邮件。支持...
★ 114 📥 52,422
content-creation

Podcast to Substack

danielfoch
将 RSS 和 Notion 中的播客发布至 Substack,附带 Apple Podcasts 嵌入和图片,随后生成 LinkedIn 适配的配套帖子。
★ 0 📥 1,285
communication-collaboration

Himalaya

lamelas
{"answer":"通过IMAP/SMTP管理邮件的CLI。可在终端使用 `himalaya` 收发、回复、转发、搜索及整理邮件。支持多账户与MML(MIME元语言)编写邮件。"}
★ 68 📥 45,588