# Contacting customers about their payments

> Remind, chase or message someone about what they owe without contacting them twice: check first, pick one channel, record what you did outside Qualy.

> **Note — For assistants**
>
> An assistant connected to the Qualy MCP server reads this guide as the resource `qualy://guides/contacting-customers`. Generated from the Qualy MCP server’s guide registry.

Qualy already reminds people on your account's reminder schedule and chases what is overdue. Anything you send on top of that reaches the same person, so do it in this order: check, act through one channel, record.

## 1. Check before you contact anyone

Call `contact_outreach_check` with the contact (id or email) and the payments or partner invoices you have in mind. For each one it says whether Qualy itself would contact them now and, if not, why, in the dashboard's words: paid or in flight, on direct debit, part of an early payoff, the contact opted out, your account turned reminder channels off, chasing paused, on hold or promised to pay.

It also gives what Qualy sent them last and whether it was delivered or read, the next message Qualy has queued, the last outreach someone recorded doing outside Qualy, a bounced or spam-reported email, and each payment's pay link.

Skip what it says no to. If it shows a message went out yesterday or one is queued for tomorrow, say so instead of sending another.

## 2. Pick one channel

| You want to | Use | Notes |
| --- | --- | --- |
| Remind them about one payment | `payment_intent_remind` | Qualy's standard payment reminder, on your account's reminder channels. Goes out a few minutes later, or at `sendAt` (at most 30 days ahead). `template` adds one of your payment reminder templates. No tone setting. |
| Chase several overdue payments or partner invoices in one notice | `collections_chase` | One consolidated notice. `style` is the tone (gentle, neutral, firm); `payBy` is the Pay by date in the email. Give exactly one of `paymentIntents`, `paymentSplits` or `bulkOperation`. |
| Message them yourself (your email, SMS, WhatsApp or a call) | your own channel | Put the pay link from `contact_outreach_check` in the message, then record it (step 3). |

Both Qualy channels preview first: the first call returns a preview to show the person, and it only sends when called again with their approval. A preview is not a success.

`payment_intent_remind` is refused, with the reason, whenever Qualy would not send it: the payment isn't draft, due, overdue or partially paid; it's part of an early payoff; it's collected by direct debit; or its supplier is set to suppress payment reminders. The `collections_chase` preview runs Qualy's eligibility check and is refused when everything would be skipped; it reports every invoice it skipped and why.

## 3. Record and follow up

- After contacting someone yourself, call `contact_outreach_record` with the channel, when (`contactedAt`, not in the future) and the payments it was about. It sends nothing; it makes `contact_outreach_check`, `payment_timeline` and the dashboard's activity show it. The same call within 10 minutes is a retry and returns the first record.
- When someone replies to a chase, record it with `collections_outcome_record`: answered, promised-to-pay (with `promisedAt`), disputed or no-response. Promised to pay pauses chasing until that date; disputed puts it on hold.
- `payment_timeline` shows one payment's whole story: messages sent, what is queued, chase attempts and replies, fees, direct debits and recorded outreach.

## What the queue can and can't tell you

`notification_queue_list` only holds what Qualy has queued so far, about a month ahead, so a short queue does not mean nothing more will be sent. The schedule behind it is your account's payment reminders: read it with `reminder_settings_get`. Qualy checks each reminder again just before sending and skips one that is no longer relevant; [`qualy://guides/how-qualy-reminds`](/docs/mcp-server/guides/how-qualy-reminds.md) lists the rules.

## Worked examples

### Check one contact before doing anything

```json
{
  "tool": "contact_outreach_check",
  "arguments": {
    "contact": "jane.doe@example.com",
    "paymentIntents": [
      "1234"
    ]
  }
}
```

Per item, read allowed and reasons; then lastContacted (what Qualy sent), next (what it has queued), lastOutsideQualy and payLink before you choose a channel.

### Remind them about one payment

```json
{
  "tool": "payment_intent_remind",
  "arguments": {
    "paymentIntentId": "1234",
    "comment": "Just a reminder that this is due on Friday."
  }
}
```

One payment per reminder. For several overdue payments in one message, use collections_chase.

Previews first: the call returns a preview to show the person. Call it again with the same arguments plus `confirmationId` and `userConfirmed: true` only after they approve.

### Chase two overdue payments in one notice

```json
{
  "tool": "collections_chase",
  "arguments": {
    "paymentIntents": [
      "1234",
      "1235"
    ],
    "style": "neutral",
    "payBy": "2026-11-15T00:00:00Z"
  }
}
```

The preview lists who gets what and what would be skipped and why.

Previews first: the call returns a preview to show the person. Call it again with the same arguments plus `confirmationId` and `userConfirmed: true` only after they approve.

### Record a WhatsApp message you sent yourself

```json
{
  "tool": "contact_outreach_record",
  "arguments": {
    "contact": "jane.doe@example.com",
    "paymentIntents": [
      "1234"
    ],
    "channel": "whatsapp",
    "contactedAt": "2026-10-05T14:30:00+10:00",
    "note": "Sent the pay link; she said she will pay on Friday."
  }
}
```
