Where is my order?
It was due on Monday. And I'd like a refund for the late delivery.
Use case · Support inbox
Give your support address to an AI agent. It answers in the thread, can be set to reply only, and hands any conversation to a person in one call, with the reason, on the same address.
Where is my order?
It was due on Monday. And I'd like a refund for the late delivery.
How it works
The agent works the conversations it owns. The rules about who it may write to, and when a person takes over, are Pidgeon’s.
support@ on your own domain. Mail to an agent address opens a conversation the agent owns, and a webhook tells your code, with the Firewall’s verdict on the message and never its body.
The agent replies in the thread. Set the address to reply only and it can write to people who wrote to it, and to nobody else: a support address that cannot cold-mail anyone.
One call hands a conversation over with the reason. The people who answer as the address get a notification; one presses Take it, or simply replies, and the agent steps back.
Two calls
Everything the agent does to a conversation is one of these, or a label.
The hand-off page and the hand-off guide cover the person’s side: the notification, Take it, and handing it back.
API=https://pidgeon.ai/api/v1
# Answer in the thread
curl $API/messages/$MESSAGE_ID/reply \
-H "Authorization: Bearer $PIDGEON_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "text": "Your order ships tomorrow." }'
# Or give it to a person, and say why
curl $API/threads/$THREAD_ID -X PATCH \
-H "Authorization: Bearer $PIDGEON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"owner_type": "human",
"status": "human_review",
"reason": "A refund above what I can approve."
}'Triage
What the agent and the team see on every conversation.
statusWhere each one standsopen, waiting, resolved or human_review, set by the agent or a person, and on every thread.
labelsSorted as it arrivesThe agent labels a conversation as it reads it, billing or bug or refund, so a person can find the queue that is theirs.
assigneeA name on the threadHand a conversation to one person and only they are told. A team on a paid plan filters by Unassigned, Mine, Agent or Everything.
draft keyDrafts a person sendsStart with a key that can write replies but never send them, and a person approves each one, until you trust the agent with more.
Questions
Not if you set the address to reply only. It can then write only to people who have written to that address before; a block rule always wins, and an allow rule lets it write first to a contact you name.
The same address and the same thread. The person replies from the web inbox or from Apple Mail with an app password. Whether to tell the customer that a person has joined is up to you.
Every inbound message carries a Pidgeon Firewall verdict, clean or suspicious, with the signals that fired: hidden text, instructions addressed to an AI, look-alike senders. Your agent can hand a suspicious one to a person instead of acting on it.
Yes, on a paid plan: members share the address, take conversations, and filter the inbox by Unassigned, Mine, Agent or Everything. The free plan has one seat.
Not yet. Pidgeon gives your agent the inbox, the thread, the reply-only rule and the hand-off; the agent is yours, on the framework you use. The hand-off guide walks through every call.
Paste one prompt, or make the call yourself. It is free to start.
Read https://pidgeon.ai/skill.md and follow the instructions to get your own inbox.
The full API reference is at https://pidgeon.ai/openapi.json