# Work the inbox

> Find every conversation that needs an answer, read each in full, and reply with the user's approval.

Source: https://rivomi.com/docs/use-cases/work-the-inbox



**Done when:** `rivomi_list_conversations { needs_reply: true }` returns only threads the user
chose to leave.

Reading needs `read`; replying needs `send`. A reply goes to a real person's LinkedIn inbox
immediately and cannot be taken back, so **show the user each reply and send only what they approve**.

## 1. Find the open doors [#1-find-the-open-doors]

```
rivomi_list_conversations { needs_reply: true }
```

This returns two kinds of thread:

* They replied and nobody has answered.
* They accepted the invitation and nobody has written yet.

Both are warm, and the second kind is the easiest to lose.

## 2. Read each thread in full [#2-read-each-thread-in-full]

```
rivomi_get_conversation { enrollment_id } → invitation note, messages[]
```

Read the invitation note. It isn't in the message list, and it is usually what the person is
answering. Add `rivomi_get_prospect` for their signal and score reason when drafting.

## 3. Draft, confirm, send [#3-draft-confirm-send]

Draft a reply that answers what they actually said. Show it to the user. When they approve:

```
rivomi_reply { enrollment_id, text: "…" }
```

The text is sent exactly as written. Merge fields are not filled here. Replying by hand also takes
the thread out of the automated sequence for good.

**Step complete when** each reply the user approved has been sent and the thread has left the
`needs_reply` results.
