master-zapier-plan-draft/packages/zappier-customer-service
George Lambert 1b199ca4d4
Some checks are pending
offline / test (push) Waiting to run
Separate Zapier, web, API, and leaf access planes with NATS authz
Zapier is one ingress. Direct web, customer API, and S2S leaf nodes are their own services. Every hop to an internal subject must pass verae.access.authz.check (default deny by plane).
2026-09-11 16:05:05 -04:00
..
public Add NATS account-balance SoT and statement review for customers, CS, and sales 2026-09-11 15:35:37 -04:00
src Separate Zapier, web, API, and leaf access planes with NATS authz 2026-09-11 16:05:05 -04:00
test Add NATS account-balance SoT and statement review for customers, CS, and sales 2026-09-11 15:35:37 -04:00
.gitignore Wire zappier-edge into the live stack and add billing department APIs 2026-09-11 15:15:55 -04:00
package-lock.json Add NATS account-balance SoT and statement review for customers, CS, and sales 2026-09-11 15:35:37 -04:00
package.json Add NATS account-balance SoT and statement review for customers, CS, and sales 2026-09-11 15:35:37 -04:00
README.md Add NATS account-balance SoT and statement review for customers, CS, and sales 2026-09-11 15:35:37 -04:00

zappier-customer-service

Department API for customer-service credit additions and review of credits, balances, usage, and payments. Internally uses NATS verae.billing.* (account-balance). HTTP fallback to account-balance then zappier-edge.

Forgejo: https://git.georgelambert.org/marchon/zappier-customer-service
Catalog: https://zapier.georgelambert.org/packages/zappier-customer-service/README.pdf
Plugs into: zappier-edge admin (x-admin-key) at ZAPPIER_ADMIN_URL (default http://127.0.0.1:3000).

PORT=3011 ZAPPIER_ADMIN_URL=http://127.0.0.1:3000 node src/server.js
curl -X POST http://127.0.0.1:3011/credits -H 'content-type: application/json' \
  -d '{"customerId":"cust_1","cents":500,"reason":"goodwill","agent":"cs-anna"}'
Route Job
GET / Staff review UI
GET /health { ok, role }
POST /credits Add/subtract prepaid cents (NATS balance.adjust)
GET /credits?customerId= Ledger
GET /review/:customerId Full statement (balance, credits, usage, payments)

Talks to NATS verae.billing.* internally. Never talks to Zapier cloud.