# Answer PeoplePerHour WorkStream messages on time

> An AI agent finds PeoplePerHour WorkStreams where the buyer wrote last, drafts replies from the full thread and keeps you within one working day.

Source: https://cotlet.dev/integrations/peopleperhour-api-mcp-server/reply-to-buyer-messages

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.

[Request access](https://cotlet.dev/app/signup?app=peopleperhour) [All PeoplePerHour tools](https://cotlet.dev/integrations/peopleperhour-api-mcp-server)

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](https://support.peopleperhour.com/hc/en-us/articles/205217317-Rules-of-Engagement) · [PeoplePerHour Help: Understanding CERT](https://support.peopleperhour.com/hc/en-us/articles/205218587-Understanding-CERT) · [PeoplePerHour Help: Why was my message removed?](https://support.peopleperhour.com/hc/en-us/articles/205218207-Why-was-my-message-removed) · [PeoplePerHour Help: New WorkStream Inbox](https://support.peopleperhour.com/hc/en-us/articles/205218057-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](https://cotlet.dev/integrations/peopleperhour-api-mcp-server#automations)

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](https://cotlet.dev/integrations/peopleperhour-api-mcp-server#tools)

## More PeoplePerHour automations

- [Find new PeoplePerHour projects that fit your skills](https://cotlet.dev/integrations/peopleperhour-api-mcp-server/find-new-projects)
- [Write and send PeoplePerHour proposals with an AI agent](https://cotlet.dev/integrations/peopleperhour-api-mcp-server/send-proposals)
- [Raise PeoplePerHour invoices for finished work](https://cotlet.dev/integrations/peopleperhour-api-mcp-server/invoice-finished-work)
- [PeoplePerHour API and MCP server: every tool](https://cotlet.dev/integrations/peopleperhour-api-mcp-server)
- [All use cases](https://cotlet.dev/use-cases)

## 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.

[Request access](https://cotlet.dev/app/signup?app=peopleperhour)
