---
title: "Copy another sequence's agent setup"
method: POST
path: "/sequences/{sequence_id}/agent/copy-from/"
tags: ["sequences"]
---

# Copy another sequence's agent setup

`POST /sequences/{sequence_id}/agent/copy-from/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/sequences/{sequence_id}/agent/copy-from/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Give this sequence's outbound agent the setup of another sequence's agent: its personality, goal, call to action, language and translation choice, model, research switch, reply prompt and whether it drafts replies. This sequence's per-step prompts stay as they are, because they belong to its own steps. Takes the id of the sequence to copy from and returns this sequence's agent. The copy is written as a new version of the agent, so it can be undone from the agent's version history.

## Path parameters

- `sequence_id` string, uuid, required

## Request body

- SequenceAgentCopySchema: Which sequence's agent setup to copy onto this sequence's agent.
  - `from_sequence_id` string, uuid, required: The sequence whose agent setup is copied. Must be another of this workspace's.

## Response `200`

Successful Response

- SequenceAgentReadSchema: The sequence's outbound agent: the setup its agent-written steps and replies use.
  - `config` OutboundAgentConfig, required: The versioned configuration one outbound agent carries, stored as JSON on its row. Everything a person sets on the Agent tab that is not already a column of the saved-agent row (``model_key`` and the research switch live there). ``message_prompts`` is keyed by an opaque slot key the caller mints (the step id); the agent never learns what a slot means.
    - `campaign` CampaignBrief: What one sequence's campaign is: the tested campaign it runs and why. Written by tailoring and by nothing else; the Agent tab reads it and never sends it back (the service keeps the stored one on every other write). Tailoring now rewrites the steps' instructions themselves and writes only ``reason`` and ``goal`` here. ``audience``, ``why_now``, ``angle`` and ``step_notes`` are what it wrote before: kept, and still read by the writer, for the agents that carry them. They were written by a model from the audience table, so they are background, never facts: only ``intent``, the person's own words, may be stated as fact.
      - `angle` string
      - `audience` string
      - `campaign_key` string, required
      - `chosen_by_person` boolean
      - `goal` string
      - `intent` string
      - `minted` string[]
      - `reason` string
      - `step_notes` object
      - `table_name` string
      - `tailoring_off` boolean
      - `why_now` string, nullable
    - `cta_label` string, nullable
    - `cta_url` string, nullable
    - `goal` string
    - `language` string
    - `message_prompts` object
    - `person_research` boolean
    - `personality_preset` 'direct' | 'consultative' | 'bold' | 'custom': The voice an agent writes in. Each preset is a real prompt; CUSTOM is the author's.
    - `personality_prompt` string
    - `reply_drafting` boolean
    - `reply_prompt` string
    - `translate` boolean
    - `write_from_excluded_column_ids` string[]
  - `created_at` string, date-time, required
  - `id` string, uuid, required: The agent's id, as the /outbound-agents/ routes address it.
  - `model_key` string, required: The model it writes with: swift, core or deep.
  - `name` string, required
  - `research` boolean, required: Whether the first message to a contact may research them on the web.
  - `updated_at` string, date-time, required
  - `version` integer, required: The configuration's version; every change writes a new one.

## Other responses

- `401`: Unauthorized
- `403`: Asked with an API key.
- `404`: Not found.
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/dc5ac3c84444?raw)
