One place for each client
Give each client their own project, then let your agent bring the right forms together for the people who need them. The fields can differ from site to site. The result still arrives in a shape people can use.
curl -X POST https://postbag.dev/v1/streams -H "Authorization: Bearer pb_live_…" -d '{
"name": "Vending leads", "slug": "vending-leads",
"schema": { "json_schema": { "type": "object", "required": ["name","phone"],
"properties": { "name": {"type":"string"}, "company": {"type":"string"}, "phone": {"type":"string"}, "message": {"type":"string"}, "site": {"type":"string"} } } },
"sources": [ { "selector": "tag:vending", "mapping": { "name": {"from":"fullName"}, "phone": {"from":"tel"}, "site": {"const":"fleet"} } } ]
}' curl -X POST https://postbag.dev/v1/streams -H "Authorization: Bearer pb_live_…" -d '{
"name": "Vending leads", "slug": "vending-leads",
"schema": { "json_schema": { "type": "object", "required": ["name","phone"],
"properties": { "name": {"type":"string"}, "company": {"type":"string"}, "phone": {"type":"string"}, "message": {"type":"string"}, "site": {"type":"string"} } } },
"sources": [ { "selector": "tag:vending", "mapping": { "name": {"from":"fullName"}, "phone": {"from":"tel"}, "site": {"const":"fleet"} } } ]
}' Campaigns stay tidy
Let a partner receive leads only while a campaign is running. Your ops inbox can get one tidy email at 08:00 with the day's leads. When plans change, update it once instead of visiting fifteen sites.
Add the next site
When the next site is built, your agent can give it a form that already fits the rest of the fleet. Future agents find a small note in the repo and know where the form belongs.
Know when a form changes
When a site adds a field, Postbag lets you know. When a partner needs a new field, your agent can update the shared setup before anyone is surprised weeks later.