---
title: "Define up to 5 personalized lines (each used as {{key}} in steps) and what you sell. Saving starts writing missing lines for up to 100 people, about 3 cents a person; for more it returns needsConfirm and writes nothing until campaigns.personalization.write is confirmed"
method: PUT
path: "/campaigns/{sequenceId}/personalization"
tags: ["campaigns"]
---

# Define up to 5 personalized lines (each used as {{key}} in steps) and what you sell. Saving starts writing missing lines for up to 100 people, about 3 cents a person; for more it returns needsConfirm and writes nothing until campaigns.personalization.write is confirmed

`PUT /campaigns/{sequenceId}/personalization`

## Request

- Base URL: `https://www.dench.com/api/v1`
- URL: `https://www.dench.com/api/v1/campaigns/{sequenceId}/personalization`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Define up to 5 personalized lines (each used as {{key}} in steps) and what you sell. Saving starts writing missing lines for up to 100 people, about 3 cents a person; for more it returns needsConfirm and writes nothing until campaigns.personalization.write is confirmed.

## Path parameters

- `sequenceId` string, required

## Request body

- object
  - `template` object, nullable, required: The lines and context; null turns personalized lines off.
    - `variables` object[], required
      - `key` string, required: The {{key}} used in steps: a letter, then letters, digits or _ (up to 40). Not a built-in field like firstName or company.
      - `label` string, required: The line's name, up to 60 characters.
      - `prompt` string, required: What the writer should say, up to 600 characters.
      - `fallback` string, required: Sent when there is nothing specific to say; up to 300 characters, no {{variables}}.
      - `fallbackFrom` string: A field to use before the fallback, e.g. Company.
      - `maxChars` integer: The longest line, default 200 characters.
    - `context` object, required
      - `sells` string, required: What you sell, up to 1000 characters.
      - `offer` string: The offer or call to action, up to 300 characters.

## Response `200`

Successful response

- object
  - `version` number, required
  - `eligible` number, required: People who would get a line.
  - `estimatedCents` number, required: About 3 cents a person.
  - `needsConfirm` boolean, required: True when nothing was written: confirm with campaigns.personalization.write and confirmed: true.
  - `queued` number, required: People whose lines are being written now.

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid authentication
- `404`: Operation or resource not found
- `500`: Server error

---

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