---
title: "Followup Cadence Update"
method: PUT
path: "/followup-cadences/{followup_cadence_id}"
tags: ["authenticated", "followup_cadences"]
---

# Followup Cadence Update

`PUT /followup-cadences/{followup_cadence_id}`

## Request

- Base URL: `https://api-docs.upsmith.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.upsmith.com/followup-cadences/{followup_cadence_id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

## Path parameters

- `followup_cadence_id` string, required

## Headers

- `organization-id` string, nullable
- `x-user-id` string, nullable
- `timezone` string
- `x-actor-email` string, nullable
- `x-request-source` string, nullable
- `x-operation-id` string, nullable
- `x-commit-message` string, nullable
- `x-confirmation-id` string, nullable
- `x-chat-id` string, nullable

## Response `200`

Successful Response

- FollowupCadencePublic
  - `id` string, required
  - `organization_id` string, required
  - `name` string, required
  - `description` string, nullable
  - `enabled` boolean
  - `definition` FollowupCadenceDefinition, required
    - `anchor` 'engagement_start' | 'targeted_appointment': What a sequence's touches are timed against. ``ENGAGEMENT_START``: each touch's ``wait`` runs from the touch before it, the first from when the conversation opened. ``TARGETED_APPOINTMENT``: each touch's ``window`` is a point in the arrival window of the appointment the engagement is about.
    - `restart_after_reply` boolean: Start a new sequence after the first delivered business reply in each customer reply cycle
    - `stop_when` FollowupCadenceStopCondition[]
    - `touches` FollowupCadenceTouch[]
      - `wait` string, nullable: Engagement-start anchor: delay from the previous touch, or from the anchor for the first, e.g. '7m' or '3d'
      - `window` string, nullable: Appointment anchor: a point in the arrival window — 'start', 'end', a percentage like '50%', optionally offset by a duration: 'start+30m', 'end-10m'
      - `if_past` 'skip' | 'send': What an appointment-anchored touch does when its moment has already passed by the time the sequence is scheduled — a window that opened before the campaign ran.
      - `action` 'message' | 'escalate', required
      - `instructions` string, nullable: Guidance to the agent for this touch, not literal send text
      - `at` string, nullable: Local time of day this touch fires, HH:MM in the org's timezone, e.g. '09:45'
    - `weekdays_only` boolean: Hold touches that come due on a weekend until Monday, in the org's timezone
    - `send_hours` FollowupSendHours: A cadence's own sending hours, inside the platform's follow-up window; it can only narrow it.
      - `start_hour` integer, required: First local hour a touch may fire, e.g. 9 for 9:00 AM
      - `end_hour` integer, required: Local hour sending stops, exclusive, e.g. 19 to send nothing from 7:00 PM
    - `min_gap` string, nullable: Appointment anchor: the least time between two touches, e.g. '30m'; a touch closer than this to the one before it is dropped
  - `definition_sha256` string, required
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

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