Use case · Invoice chasing

An agent chases the invoice. A person handles the dispute.

Your agent sends each reminder in the invoice’s own thread, with the PDF, schedules the next one, reads the reply, and hands anything that isn’t a payment to a person.

Aaccounts@northwind.co

Re: Invoice 1042 is overdue

Sorry for the delay, we'll pay it on Friday.

Agent activityWorking
  1. Reading the reply
  2. Cancelling Monday’s reminder
  3. Scheduling a check for Saturday
  4. Nothing for a person yet

How it works

A thread, a schedule, and a person for the rest.

The agent decides what to say and when. Pidgeon keeps the thread, sends on time and hands over what the agent shouldn’t answer.

  • One thread per invoice

    The invoice goes out from your billing address with the PDF attached, and every reminder is a reply in that thread, so the customer and the agent both see the whole history.

  • The next reminder, already scheduled

    A draft can be scheduled from a minute to 90 days ahead. If a scheduled send is refused, it is taken off the schedule with the reason, not retried behind your back.

  • A person gets the disputes

    The model reads each reply: paid, next week, or a disagreement. The first two it notes and reschedules; anything else it hands to a person in one call, with the reason.

Two calls

Write the reminder, then schedule it.

A draft in the invoice’s thread, with the PDF, sent when you say.

Every field is in the drafts guide, and the person’s side of a dispute in the hand-off page.

curl
API=https://pidgeon.ai/api/v1

# A reminder in the invoice's own thread,
# with the PDF, for next Monday morning
curl $API/drafts \
  -H "Authorization: Bearer $PIDGEON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "identity_id": "'$BILLING_ID'",
    "in_reply_to_message_id": "'$INVOICE_ID'",
    "text": "A reminder that invoice 1042 is now due.",
    "attachment_ids": ["'$PDF_ID'"]
  }'

curl $API/drafts/$DRAFT_ID/schedule \
  -H "Authorization: Bearer $PIDGEON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "send_at": "2026-11-02T09:00:00+01:00" }'

The rules

Chasing, not spamming.

What keeps an invoice agent on the right side of your customers and of our policy.

  • one thread eachTransactional, not bulk

    Reminders go to customers who already owe you, about their own invoice, in that invoice’s thread. That is mail to an existing relationship, which is what our acceptable use policy allows.

  • stop on replySilence when they answer

    Build the agent so that a reply cancels the next scheduled reminder before anything else happens. Nobody should be chased for an invoice they just said they paid.

  • draft keyA person presses send

    Start the agent on a key that writes drafts and can never send or schedule them. A person reads each reminder and schedules it, until you trust the agent with the tone.

  • your domainFrom your billing address

    billing@ on your own domain, with SPF, DKIM and DMARC set up for you, so reminders arrive as your company’s mail.

Questions

Asked before it writes to a customer.

Does Pidgeon read the amount or the due date from an invoice?

No. Pidgeon pulls verification codes and links out of mail, not invoice fields. Your agent reads the reply’s text itself, with the model you give it, and your own system knows what is owed.

Can the agent attach the invoice PDF?

Yes. Upload the file once and pass its id on the send, the reply or the draft, up to 20 files each. Attachments on a customer’s reply can be downloaded the same way.

How far ahead can a reminder be scheduled?

From one minute to 90 days. Until it goes out, a scheduled draft can be taken off the schedule and scheduled again for another time.

Is chasing invoices allowed under your acceptable use policy?

Yes, when it is what it says: reminders to customers who owe you, about their own invoice. Unsolicited bulk email is not allowed on Pidgeon, and every plan has sending limits.

Is there a ready-made invoice agent?

Not yet. Pidgeon gives your agent the billing address, the thread, scheduled sends, attachments and the hand-off; the agent is yours, on the framework you use.

Give your agent an address.

Paste one prompt, or make the call yourself. It is free to start.

Any agentprompt

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

SignupTwo calls, and one code emailed to you