> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Attio List Mapping

> Map Sequenzy lists to Attio lists without reconnecting

Save Sequenzy-to-Attio list mappings and/or company-matching on an already-connected Attio integration, using the stored access token.

This does **not** require the Attio access token again. Do not reconnect just to change mappings.

`listMap` is a full replacement when provided. Pass the complete desired map, `{}` to unmap every list, or omit `listMap` to leave mappings unchanged. Unmapped Sequenzy lists are not synced. Unmapping does not remove anyone from Attio — the sync is add-only and does not backfill people already on a list.

Provide at least one of `listMap` or `syncCompanyFromDomain`. Idempotent: asking for the current state succeeds with `changed: false`.

Attio only. Other providers return a `400`.

Requires an API key with the `integrations:manage` scope. Agent-safe keys do not carry it, by design: an agent can read the current mapping from [Get Attio List Mapping](/api-reference/integrations/attio-get) and report the dashboard path (Settings → Integrations → Attio → Map lists), but applying it needs a key with integration management rights.

## Request

<ParamField path="id" type="string" required>
  Attio integration ID, from [List
  Integrations](/api-reference/integrations/list).
</ParamField>

<ParamField body="listMap" type="object">
  Complete map of Sequenzy list id to Attio people-list UUID or api slug.
  Replaces the saved map. Pass `{}` to clear every mapping. Omit to leave
  mappings unchanged. Unknown Sequenzy ids and unknown or non-people Attio
  targets are rejected.
</ParamField>

<ParamField body="syncCompanyFromDomain" type="boolean">
  When true, upsert a company from the person's non-free-mail email domain. Omit
  to leave the current setting unchanged.
</ParamField>

```bash theme={null}
curl -X PATCH "https://api.sequenzy.com/api/v1/integrations/int_abc123/attio" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "listMap": {
      "list_abc": "field-guide",
      "list_def": "benchmark"
    }
  }'
```

## Response fields

Same shape as [Get Attio List Mapping](/api-reference/integrations/attio-get), plus:

<ResponseField name="changed" type="boolean">
  False when the integration was already in the requested state.
</ResponseField>

<ResponseField name="changedFields" type="array">
  Which settings actually moved: `listMap` and/or `syncCompanyFromDomain`.
</ResponseField>

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "integrationId": "int_abc123",
    "provider": "attio",
    "listMap": {
      "list_abc": "field-guide",
      "list_def": "benchmark"
    },
    "mappedListCount": 2,
    "syncCompanyFromDomain": true,
    "sequenzyLists": [
      { "id": "list_abc", "name": "Field Guide" },
      { "id": "list_def", "name": "Benchmark" }
    ],
    "attioLists": [
      { "id": "list_test", "apiSlug": "field-guide", "name": "Field Guide" },
      { "id": "list_benchmark", "apiSlug": "benchmark", "name": "Benchmark" }
    ],
    "changed": true,
    "changedFields": ["listMap"],
    "message": "2 active Sequenzy list(s) mapped to Attio. Unmapped lists are not synced."
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": "Unknown or non-people Attio list id(s): not-a-list"
  }
  ```

  ```json 401 theme={null}
  {
    "success": false,
    "error": "Unauthorized"
  }
  ```

  ```json 404 theme={null}
  {
    "success": false,
    "error": "Integration not found"
  }
  ```
</ResponseExample>
