> ## Documentation Index
> Fetch the complete documentation index at: https://80x.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Add record to list

> The Add record to list block (Lists) adds a record to a selected Attio list and optionally sets the new list entry's attributes.

The **Add record to list** block (Lists) adds a record to a selected Attio list and optionally sets the new list entry's attributes. It creates a *list entry*, which is a per-list row that wraps the record. It does not create a new record, so the record must already exist before this block runs. Set the entry's list attributes in this same block whenever you can. That is simpler than chaining a separate [Update list entry](/reference/lists/update-list-entry) block afterward.

| | |
| - | - |
| **Category** | Lists |
| **Credit cost** | 1 credit |
| **Engine** | New Workflows engine (June 2026+) |
| **Plan availability** | All paid plans |
| **Limits** | None documented. See [Credits & pricing explained](/reference/credits-and-pricing) for the credit allowance. |

## Inputs

| Input | Type | Required | Default | Notes |
| - | - | - | - | - |
| List | List | Yes | None | The list that receives the new entry. |
| Record | Record reference | Yes | None | The record to add. Must already exist. |
| Attributes to set | List-entry attributes | No | None | Initial values for the new entry's list attributes, such as stage or source. |

## Outputs

| Output | Type | Example | Notes |
| - | - | - | - |
| Created list entry | List entry | `Acme Corp` in `Sales pipeline` | The entry that was created, including its list attributes and parent record. |

Reference the created entry's data in a later block as `{{ steps.add_record_to_list.list_entry }}`.

## Behavior

The block creates one list entry for the record on the chosen list. The record must exist first. This block adds an existing record to a list and never creates a record itself. To create the record in the same workflow, run [Create record](/reference/records/create-record) or [Create or update record](/reference/records/create-or-update-record) earlier, then pass its output here.

Any values you supply under **Attributes to set** are written to the new entry's list attributes as it is created. That is why setting them here is cheaper and simpler than adding a separate [Update list entry](/reference/lists/update-list-entry) step. The block does not check for duplicates. So if the record might already be on the list, check for an existing entry before this block runs to avoid an unwanted second entry.

## Gotchas

* **A list entry is not a record.** The output of this block is a list entry that wraps the record. A downstream block that expects a plain record cannot consume it directly. Read [Records vs list entries](/explanation/records-vs-list-entries) before you wire the output, and pass the parent record where a record is required.
* **The record may already be on the list.** The block does not check for membership before it adds. So re-running it on a record that is already on the list can create a second entry. When the record might already be a member, run [Find list entries](/reference/lists/find-list-entries) first and branch on whether an entry exists.
* **Adding a separate update step wastes a credit.** Each write costs 1 credit. A chained [Update list entry](/reference/lists/update-list-entry) block doubles the cost of populating the new entry. Set the entry's attributes under **Attributes to set** in this block instead.

## Examples

### Adding a qualified company to the sales pipeline

A lead-qualification workflow adds a newly qualified company to the sales pipeline. It stamps the source and priority as the entry is created.

| Field | Value |
| - | - |
| List | Sales pipeline |
| Record | `{{ steps.find_records.record }}` (Acme Corp) |
| Attributes to set | Source: `Inbound`, Priority: `High` |

Acme Corp appears in the Sales pipeline list with its source set to `Inbound` and its priority set to `High`. No separate update step is needed.

### Adding a record only when it is not already a member

An intake workflow checks for an existing entry first. It then adds the company to the onboarding list only when it is absent.

```json theme={null}
{
  "list": "Onboarding",
  "record": "{{ steps.find_records.record }}",
  "attributes_to_set": {
    "stage": "Kickoff",
    "owner": "priya.sharma@acme.com"
  }
}
```

When [Find list entries](/reference/lists/find-list-entries) returns no match for Acme Corp, the block adds the company to the Onboarding list at the `Kickoff` stage and assigns Priya Sharma as owner. When a match already exists, the workflow skips this block and avoids a wasted write.

## Credit cost worked example

Each run of this block costs 1 credit. A workflow that adds 200 newly qualified companies to the sales pipeline each month spends 200 credits, one per company. Setting the entry's `Source` and `Priority` under **Attributes to set** in this same block keeps the cost at 1 credit per company. Chaining a separate [Update list entry](/reference/lists/update-list-entry) block would raise it to 2 credits per company, or 400 per month. Check the run against your plan's monthly allowance on [Credits & pricing explained](/reference/credits-and-pricing).

## Source

[Attio Workflows block library](https://attio.com/help/reference/automations/workflows/workflows-block-library). Last reviewed against the Attio Help Center, June 2026.

## See also

* [Update list entry](/reference/lists/update-list-entry)
* [Find list entries](/reference/lists/find-list-entries)
* [Records vs list entries](/explanation/records-vs-list-entries)
* [Record added to list](/reference/triggers/record-added-to-list)
* [Attio Workflows block library](https://attio.com/help/reference/automations/workflows/workflows-block-library)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.