---
title: "Set up personal lines"
method: PUT
path: "/api/v1/campaigns/{campaign_id}/personalization"
tags: ["Campaigns"]
---

# Set up personal lines

`PUT /api/v1/campaigns/{campaign_id}/personalization`

## Request

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

Sets the campaign's personal-line variables, each with a name, an instruction for the writer and a fallback that reads well for anyone. Put {{custom_name}} into the emails where the line goes. Everyone without their own line gets the fallback at once, so the campaign can launch at any time.

| 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
  - `variables` object[], required: 1 or more variables.
    - `name` string, required: Saved as custom_<name>.
    - `instruction` string
    - `fallback` string, required
    - `max_length` integer
  - `allow_links` boolean: Allow links inside the lines (default false).

## Response `200`

OK

- object
  - `campaign_id` string
  - `personalization` object
    - `variables` object[]
      - `name` string
  - `progress` object
    - `total` integer
    - `written` integer
    - `fallback` integer
  - `notes` string[]
  - `fallbacks_written` integer
  - `summary` string

## Other responses

- `400`: 400 Bad request. `invalid_request` when a variable has no fallback or an unknown field.
- `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. `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)
