AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Lead To Payment

skill-hewi333-mom-n-pop-skills-lead-to-payment · by hewi333

Use when a new lead arrives (email, Telegram message, or website form) and needs to move through the full pipeline: qualify the lead, generate an estimate, get owner approval, create a payment link, draft a customer email for owner review, and track payment. This is the master flow that orchestrates estimator-engine, crm-lite, stripe-payments, himalaya (IMAP/SMTP), and quickbooks-online. Owner st…

No reviews yet
0 installs
23 views
0.0% view→install

Install

$ agentstack add skill-hewi333-mom-n-pop-skills-lead-to-payment

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-hewi333-mom-n-pop-skills-lead-to-payment)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Lead To Payment? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Lead-to-Payment — Master Sales Flow

Overview

This is the end-to-end pipeline for a service business: a lead comes in, the agent turns it into a priced estimate, the owner approves it over Telegram, and the agent creates a payment link or invoice and tracks it to paid. The owner is never bypassed — the agent drafts and proposes, the human approves, then the agent executes. This mirrors how a small business owner actually wants to work: they stay in control, the agent removes the 30–60 min of manual work per estimate.

Environment assumptions

  • Model: zai-org/GLM-5.2 via Together AI, direct (no proxy).
  • Gateway: Telegram, running as a systemd service. Tool calling works in the gateway.
  • Secrets live in ~/.hermes/.env.
  • Email: GoDaddy Workspace Email via IMAP/SMTP (himalaya CLI, not Microsoft Graph).

Config at ~/.config/himalaya/config.toml, password at ~/.config/himalaya/.email-pw. IMAP: imap.secureserver.net:993 TLS. SMTP: smtpout.secureserver.net:465 TLS. NOT M365 — outlook-graph skill is kept as a separate skill for businesses that use real M365. See references/godaddy-email-setup.md for full setup + verified commands.

  • Payments: Stripe test mode (STRIPE_SECRET_KEY in .env).
  • QuickBooks is not wired (post-hackathon P1). The flow degrades gracefully without it.

When to Use

  • A referral or customer inquiry arrives (e.g., 80% of leads are referral-based).
  • Owner forwards/pastes a lead to the agent in Telegram.
  • A website estimator form submission needs a real estimate + payment path.

The Flow (happy path)

1. Intake

Lead arrives one of three ways:

  • Email inbox (GoDaddy via himalaya): owner says "check the email" → agent

runs himalaya envelope list to read the inbox, identifies leads vs spam/newsletters.

  • Telegram (always works): owner pastes "new lead: Jane Doe, 2,400 sqft home in [CITY],

cigarette smoke, referral from [Referral Partner]."

  • Website form (if base44-site-spec is live): form payload hits the agent.

Agent extracts: customer name, contact (email/phone), property address + region, square footage, property type (residential/commercial/apartment), severity/service type (e.g. cigarette >5yrs, pet/trauma), lead source.

2. Summarize + notify owner (Telegram)

Agent posts a short summary to the owner: > 📥 New lead — Jane Doe (referral, [Referral Partner]) > 2,400 sqft residential, [CITY] ([REGION]), cigarette smoke >5yrs > Want me to draft an estimate?

Wait for owner go-ahead before pricing. (Keeps a human gate at the top.)

3. Price it — estimator-engine

Run the estimator with the extracted details. Use the published rate card from the estimator-engine config (do not invent prices). For 2,400 sqft standard region, that's the 1,500–2,500 sf tier at the configured rate per psf plus the cigarette >5yrs extended add-on. Return structured line items, not just a total.

4. Log to CRM — crm-lite

Upsert the customer and create a lead/estimate record:

  • customers: name, email, phone, address, city, state, zip, lead_source, lead_status=qualified
  • estimates: line items, total, status=draft, link back to customer id

5. Propose the estimate to the owner (Telegram) — APPROVAL GATE

Show the owner the full estimate and ask before sending: > 🧾 Estimate for Jane Doe — $3,300 > • Odor treatment, 2,400 sqft @ $1.25 = $3,000 > • Cigarette >5yrs extended = +$550 (adjust per rate card tier) > • Travel surcharge ([REGION]) = +$75 > Send this to the customer as a payment link / invoice? (yes / edit / no)

Do NOT send or charge anything until the owner says yes.

6. On approval — create the charge — stripe-payments

Default to a Stripe payment link (simplest, most demo-friendly). For NET-30 jobs use a Stripe invoice instead. Amounts are in cents ($3,300 = 330000).

  • Create/lookup Stripe customer (store metadata: region, sqft, source).
  • Create payment link (or invoice → finalize → send).
  • Capture the returned https://buy.stripe.com/... URL.

7. Draft customer email — himalaya (IMAP/SMTP) — DRAFT ONLY, NO AUTO-SEND

Agent composes a customer-facing email from owner@yourdomain.com containing:

  • The estimate summary (line items + total)
  • The Stripe payment link
  • Business contact info + call-to-action

The agent does NOT send this email automatically. It shows the full draft to the owner in Telegram and asks: "Here's the draft email to [customer]. Want me to send it?" The owner must explicitly say "send" / "yes" before the agent sends via himalaya.

If the owner says "edit" → agent revises and shows again. If the owner says "no" → agent does not send, logs the decision in CRM.

To send after approval:

cat ` to generate a
reply template with proper `In-Reply-To` and `References` headers, then pipe the
edited template through `himalaya message save --folder Drafts` (to save as draft)
or `himalaya template send` (to send after owner approval). Do NOT compose a fresh
email for a thread reply — it breaks the threading headers and the customer won't
see it as part of the conversation.

### 8. Update CRM + set follow-up
- `estimates.status = sent`, store the Stripe link / invoice id.
- Create a follow-up reminder (todo or cron) for 3 days out if unpaid.

### 9. Track to paid
- Poll Stripe payment status (or receive a webhook if configured).
- On `paid`: notify owners in Telegram ("✅ Jane Doe paid $3,300"), set
  `estimates.status = paid` and `customers.lead_status = won`.
- If QuickBooks is wired: record the payment against the QBO invoice. If not, the Stripe
  record is the source of truth — fine for now.

## Current state (what runs TODAY)
- Intake: Telegram paste OR `himalaya` inbox read (GoDaddy IMAP — wired and verified).
- Price: estimator-engine (no creds needed, rate tables in skill config).
- Log: crm-lite (SQLite, no creds needed).
- Charge: Stripe payment link (test mode key set).
- Draft email: himalaya IMAP/SMTP (GoDaddy — wired and verified). DRAFT ONLY — owner
  approves before send. Use `himalaya message save --folder Drafts` to save drafts (NOT
  `template save` — that command does not exist). Use `himalaya template reply ` for
  thread replies to preserve In-Reply-To headers.
- Track: agent checks Stripe status on request.
QuickBooks is not wired (post-hackathon P1). The Stripe record is the source of truth.

## Owner-in-the-loop rules (important)
- Always summarize a lead before pricing, and always show an estimate before sending.
- Never create a Stripe charge, send an email, or mark anything paid without explicit
  owner approval in the chat. The agent proposes; the human commits.
- Keep Hermes command approvals ON. For a business that spends real money, annoying-but-safe
  beats fast-but-loose.

## Demo script

1. Owner pastes a referral lead into Telegram.
2. Agent summarizes it and asks to draft an estimate.
3. Agent prices it with estimator-engine, logs to crm-lite, shows the estimate.
4. Owner taps "yes."
5. Agent creates a Stripe (test mode) payment link and returns it.
6. On camera, pay with test card `4242 4242 4242 4242`.
7. Agent detects `paid`, posts "✅ paid" in Telegram, updates the CRM.

## Pitfalls
- Stripe amounts are in **cents**. $3,300 = 330000, not 3300.
- Use Stripe **test mode** (`sk_test_…`) for the demo; test cards only work in test mode.
- Match estimate totals to the estimator-engine output exactly so the charge equals the quote.
- Don't claim QuickBooks is live if it isn't wired — present it as roadmap.
- Severity add-on amounts vary by sqft tier — pull the exact figure from the estimator rate card.
- **Email is GoDaddy IMAP/SMTP via himalaya, NOT Microsoft Graph.** Do not use `outlook-graph`
  skill for GoDaddy-hosted email — it's kept as a separate skill for other businesses that use real M365.
- **Never auto-send customer emails.** Always draft, show the owner in Telegram, get explicit
  "send" approval, then send via himalaya.
- **Region classification must match across all locations:** `estimator-engine/SKILL.md`
  Location Tiers → `base44-site-spec` estimator HTML → Base44 site estimator widget. If you update
  one, update all three. Canonical source is `estimator-engine`.
- **Link CLI approval holds expire in ~6 minutes.** When filming + approving real-money
  flows, set up the camera first, then trigger the spend request. Don't race the timer.
- **One-time virtual cards don't work for recurring subscriptions.** The Link CLI issues
  one-time-use cards; the first charge works but rebilling will fail. Accepted for demo;
  handle recurring billing properly post-hackathon.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [hewi333](https://github.com/hewi333)
- **Source:** [hewi333/Mom-n-Pop-Skills](https://github.com/hewi333/Mom-n-Pop-Skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.