> ## 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.

# Create record

> The Create record block (Records) creates a new record in an Attio object such as a company, person, or deal.

The **Create record** block (Records) creates a new record in an Attio object such as a company, person, or deal. A record is a single row in an object, like one company or one person. This block always adds a brand-new row, even when a matching record already exists. So if the record might already be in the object, use [Create or update record](/reference/records/create-or-update-record) instead. Reach for **Create record** only when you know the record is new.

| | |
| - | - |
| **Category** | Records |
| **Credit cost** | 1 credit |
| **Engine** | New Workflows engine (June 2026+) |
| **Plan availability** | All paid plans |
| **Limits** | None documented. |

## Inputs

| Input | Type | Required | Default | Notes |
| - | - | - | - | - |
| Object | Object | Yes | None | The object to create the record in, such as Companies, People, or Deals. |
| Attributes to set | Attribute map | No | None | Values for the new record's attributes. Required attributes on the object still need a value in this map, or the block fails. |

## Outputs

| Output | Type | Example | Notes |
| - | - | - | - |
| Created record | Record | `Acme` (Companies) | The full record that was created, including its generated ID and every attribute you set. |

You can use the created record in later blocks. Reference the whole record as `{{ steps.create_record.record }}`. Reference one of its attributes as `{{ steps.create_record.record.name }}`.

## Behavior

**Create record** runs once per execution and always adds a new record. It never searches for an existing match first. So two runs on the same input produce two records.

The block needs write access to the target object before it can run. Grant that access in the workflow's settings. Without it, the run fails when it reaches this block. It does not skip the block; it stops.

Every attribute marked required on the object must get a value through **Attributes to set**. Any optional attribute you leave out stays empty on the new record. The attributes you do set accept literal values or variables from earlier blocks. A variable could be something like a domain you parsed from a webhook payload.

## Gotchas

* **Duplicate records pile up on retries.** The block always inserts, so a retried or re-fired run creates a second copy of the same record. When the input might already exist, use [Create or update record](/reference/records/create-or-update-record) instead. That block matches on a unique attribute and writes once.
* **A missing required attribute fails the run.** Say the object has a required attribute and **Attributes to set** does not include it. The block errors out instead of creating a partial record. List every required attribute in the input map before publishing.
* **The block fails without write access.** A workflow has no write access to objects by default. Grant write access to the target object in the workflow's settings. Otherwise the run fails when it reaches **Create record**.

## Examples

### Creating a company from a parsed webhook domain

A lead-capture workflow receives a form submission. It parses the JSON body, then creates a company record from the submitted domain.

| Field | Value |
| - | - |
| Object | Companies |
| Attributes to set → Domain | `{{ steps.parse_json.body.domain }}` |
| Attributes to set → Name | `Acme` |

The block creates a new company `Acme` with the domain `acme.com`. It then exposes that company to later blocks as `{{ steps.create_record.record }}`.

### Creating a deal for a qualified inbound lead

A qualification workflow scores an inbound lead. When the score passes, it creates a deal so a rep can pick it up.

```json theme={null}
{
  "object": "Deals",
  "attributes": {
    "name": "Acme renewal",
    "amount": 24000,
    "stage": "Discovery",
    "owner": "priya.sharma@acme.com"
  }
}
```

The block creates the deal `Acme renewal` in the Discovery stage, owned by Priya Sharma. The deal is then ready for an [Update record](/reference/records/update-record) or [Create task](/reference/tasks/create-task) step later in the workflow.

## Credit cost worked example

**Create record** costs 1 credit per run. Picture a workflow that creates one company for every inbound lead. If it fires on 600 leads a month, this block spends 600 credits. Compare that figure against your plan's monthly allowance on [Credits & pricing explained](/reference/credits-and-pricing).

Failed runs do not consume credits. Neither do branches the workflow skips. So only the leads that actually reach this block count.

## 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

* [Create or update record](/reference/records/create-or-update-record)
* [Update record](/reference/records/update-record)
* [Find records](/reference/records/find-records)
* [Variables & data passing](/explanation/variables)
* [Dedupe on create](/guides/pipeline-hygiene/dedupe-on-create)


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