---
title: "Set one lead's connection note and follow-ups"
method: PUT
path: "/api/v1/leads/{id}/messages"
tags: ["Leads"]
---

# Set one lead's connection note and follow-ups

`PUT /api/v1/leads/{id}/messages`

## Request

- Base URL: `https://www.zen-mode.io`
- URL: `https://www.zen-mode.io/api/v1/leads/{id}/messages`
- Auth: HTTP bearer

Set or replace this lead's text for any of `connection_request`, `follow_up_1`, `follow_up_2`, `follow_up_3`; steps not sent are kept. Each step is accepted only while it has not been sent. Each message is filled in with the lead's name, title, company and location and checked like a CSV upload: a connection note over the account's note limit is refused, never shortened; a variable the lead has no value for is refused; `{{calendar_link}}` becomes the lead's tracked link. Once a lead has any message set, ZenMode's AI no longer writes messages for that lead. It sends nothing.

## Path parameters

- `id` integer, required

## Request body

- object
  - `messages` object, required
    - `connection_request` string
    - `follow_up_1` string
    - `follow_up_2` string
    - `follow_up_3` string

## Response `200`

Saved. `messages` is the lead's stored text, exactly as it will be sent.

- object
  - `lead_id` integer
  - `campaign_id` integer
  - `messages` object
    - `connection_request` string
    - `follow_up_1` string
    - `follow_up_2` string
    - `follow_up_3` string

## Other responses

- `400`: `invalid_lead_id`, `invalid_json`, `messages_required` or `invalid_messages`.
- `401`: Missing, malformed or invalid Authorization header, or an unknown API key.
- `403`: The key is valid but the account's plan does not include API access.
- `404`: `lead_not_found`: not this account's lead, or it was removed from its campaign.
- `409`: `ai_sequence_campaign`, `unsupported_campaign_type`, `message_already_sent` or `concurrent_update`. Nothing was saved.
- `422`: `campaign_sends_no_connection_note`, `follow_up_step_not_configured`, `missing_variables` (carries `missing_variables`), `connection_note_over_limit` (carries `length` and `limit`) or `empty_message`. Nothing was saved.
- `429`: Rate limit exceeded (100 requests/minute). Carries `Retry-After`.
- `500`: Unhandled server error.

---

[API](https://skmtc.dev/zen-mode/apis/zenmode-api.md) · [All operations](https://skmtc.dev/zen-mode/apis/zenmode-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zen-mode/apis/zenmode-api/revisions/2769372f1e3f?raw)
