---
title: "Write personal lines"
method: PATCH
path: "/api/v1/campaigns/{campaign_id}/leads/custom-fields"
tags: ["Campaigns"]
---

# Write personal lines

`PATCH /api/v1/campaigns/{campaign_id}/leads/custom-fields`

## Request

- Base URL: `https://app.argorant.com`
- URL: `https://app.argorant.com/api/v1/campaigns/{campaign_id}/leads/custom-fields`
- Auth: HTTP bearer

Saves the personal lines your assistant wrote, for up to 200 people per call. Set up the campaign's personal-line variables first (PUT .../personalization). Send `leads` as a list of `{lead_id or email, values: {custom_x: "..."}}`; a person you checked and found nothing for can keep the fallback with `keep_fallback: true`.

| Cost | What it does | Key scopes |
| --- | --- | --- |
| Free | Writes | `argorant:manage_lists` |

## Path parameters

- `campaign_id` string, uuid, required

## Headers

- `Idempotency-Key` string
- `X-Request-Id` string

## Request body

- object
  - `leads` object[], required: 1 to 200 people with their lines.
    - `lead_id` string, uuid
    - `email` string, email
    - `values` object
    - `keep_fallback` boolean
    - `basis` string

## Response `200`

OK

- object
  - `saved` integer
  - `kept_fallback` integer
  - `rejected_count` integer
  - `rejected` unknown[]
    - unknown
  - `not_found_count` integer
  - `not_found` unknown[]
    - unknown
  - `progress` object
    - `total` integer
    - `written` integer
    - `fallback` integer
  - `summary` string

## Other responses

- `401`: 401 Unauthorized. `unauthorized` when the API key is missing, wrong or revoked.
- `403`: 403 Forbidden. `scope_missing` when the key lacks argorant:manage_lists.
- `404`: 404 Not found. `not_found` when the item does not exist in your workspace.
- `409`: 409 Conflict. `conflict` when the campaign has no personal-line setup yet; `idempotency_conflict` when the Idempotency-Key was used with another body.
- `422`: 422 Validation error. `validation_error` when a field has the wrong type or is missing.
- `429`: 429 Too many requests. `rate_limited` when too many requests this minute.

---

[API](https://skmtc.dev/argorant/apis/argorant-api.md) · [All operations](https://skmtc.dev/argorant/apis/argorant-api/llms.txt) · [OpenAPI document](https://skmtc.dev/argorant/apis/argorant-api/revisions/4bc28c0085b6?raw)
