PeoplePerHour automation · runs twice daily

Answer PeoplePerHour WorkStream messages on time

PeoplePerHour expects an answer to every buyer message within one working day, and with several jobs open the WorkStream inbox mixes live work, old leads and finished projects. A question posted on Friday evening is easy to find only on Monday afternoon.

Cotlet does it in your own PeoplePerHour account with list_workstreams, get_workstream and send_message, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Official options

Can PeoplePerHour do this on its own?

PeoplePerHour has no API or webhooks for WorkStream messages (checked 12 Oct 2026). The redesigned WorkStream inbox adds filters, actions on several streams at once and a completed marker. Replies are still typed one stream at a time in the website, and no native feature drafts an answer or warns you before the one-working-day window closes.

By hand

How you do it in PeoplePerHour today

  1. Open the WorkStream inbox on PeoplePerHour, narrow it with the inbox filters and mark finished jobs as completed.
  2. Open each WorkStream with a new buyer message and scroll up to recall the proposal, the agreed price and the files already shared.
  3. Type the reply in the WorkStream message box and attach files with the paper clip icon.
  4. Before a proposal is accepted, keep contact details out of the message, because PeoplePerHour removes WorkStream messages that contain them.
  5. Repeat stream by stream, checking timestamps by eye to see which buyer has waited longest.

With an agent

How to answer PeoplePerHour WorkStream messages on time

Prompt

Twice a day, find WorkStreams where the buyer wrote last, draft a reply to each from the thread history, and flag any that are close to a full working day without an answer.
  1. 01

    Find who is waiting

    The agent asks list_workstreams only for threads where the buyer spoke last and orders them by waiting time in working days, so a Friday message does not look three days old on Monday and a Monday message is not missed.

  2. 02

    Recall the deal first

    Each thread is opened with get_workstream and read back to the proposal: agreed price, delivery date and the last files sent. The draft must not promise a date or scope that contradicts what the buyer accepted.

  3. 03

    Answer by message type

    A pre-award question gets a reply that sells and contains no contact details. A change request on delivered work gets a plan and a date, since PeoplePerHour expects at least two rounds of revisions. A request to talk or pay outside PeoplePerHour gets a polite no and a flag to you.

  4. 04

    Hold what is yours to decide

    Discount requests, refunds and anything that sounds like a dispute are drafted but held for you, even when confirmation is switched off. Threads you answered last are left alone.

  5. 05

    Send in the right stream

    send_message posts each approved reply in its own WorkStream. The run ends with the oldest wait left, so you see how close any buyer is to the one-working-day mark.

What you get back

Example data

5 WorkStreams waiting on you, oldest first.
Tom R., Shopify product pages: second change request on the mobile layout. Reply with Thursday delivery drafted.
Maria S., Landing page for a SaaS launch: asked to move the call to Tuesday. Sent after your OK.
Daniel K., before award: asked for your WhatsApp. Draft keeps it in the WorkStream; flagged.
Priya N., Pitch deck refresh: asks for 10% off. Held for you.
Oldest wait: 6 working hours (Tom R.).

Other ways to ask

  • Only answer pre-award questions on projects I sent proposals to this week.
  • At 8:00 and 16:00 on weekdays, send replies to simple scheduling questions without asking me and hold everything else.
  • List buyers who have not answered my last message in three working days and draft a short check-in for each.

Before you automate it

What PeoplePerHour allows, and what to know first

  • PeoplePerHour Rules of Engagement require a freelancer to answer every buyer message in the WorkStream within one working day and to post regular progress updates.
  • Response time is one of the factors in CERT, the PeoplePerHour ranking that decides how much exposure a freelancer gets in front of buyers.
  • Before a proposal is accepted or an Offer bought, PeoplePerHour removes WorkStream messages that contain contact details and posts a note in the WorkStream explaining why.
  • PeoplePerHour can suspend an account that offers or accepts payment outside the site, and asks users to report buyers who suggest it.

send_message asks for your OK by default. To run it twice daily without you, switch confirmation off for that tool in your dashboard.

Sources: PeoplePerHour Help: Rules of Engagement · PeoplePerHour Help: Understanding CERT · PeoplePerHour Help: Why was my message removed? · PeoplePerHour Help: New WorkStream Inbox

REST

Call send_message from a script

curl

curl https://cotlet.dev/api/v1/peopleperhour/send_message \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workstream_id":"ws_7731","body":"Tuesday at 10:00 works for me. I will bring the second layout so we can pick one on the call."}'

Example response

{
  "workstream_id": "ws_7731",
  "message_id": "msg_5120",
  "status": "sent",
  "sent_at": "2026-10-11T08:05:00Z"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is peopleperhour_send_message. Example data.

Schedule it in n8n, Make, Zapier or cron

Tools

PeoplePerHour tools this automation uses

Cotlet PeoplePerHour tools used to answer PeoplePerHour WorkStream messages on time
Tool Parameters
list_workstreams awaiting_reply, limit, cursor
get_workstream workstream_id
send_message workstream_id, body
All 11 PeoplePerHour tools with descriptions

Give your agent access to PeoplePerHour.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with PeoplePerHour.