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

# Record created

> The Record created trigger (Records) starts a workflow whenever a new record appears in an object, however it was created.

The **Record created** trigger (Records) starts a workflow whenever a new record appears in an object, however it was created. It fires the same way no matter how the record was made: manual entry, a CSV import, an API call, a form integration, or Attio's own email-sync auto-creation. A single import can fire it thousands of times. Treat it as your raw intake signal. Filter that signal down before any block writes data or calls AI.

| | |
| - | - |
| **Category** | Triggers |
| **Credit cost** | Free. Triggers consume no credits. |
| **Engine** | New Workflows engine (June 2026+) |
| **Plan availability** | All plans |
| **Limits** | Fires once per record created, including once per row on import. None otherwise documented. |

## Inputs

| Input | Type | Required | Default | Notes |
| - | - | - | - | - |
| Object | Object | Yes | None | The object to monitor, such as People, Companies, or Deals. |

## Outputs

| Output | Type | Example | Notes |
| - | - | - | - |
| Record | Record | `jane@acme.com` (a People record) | The newly created record, including its attributes. Many attributes may be empty at creation time. |
| Actor | Actor | Priya Sharma | Who or what created the record: a workspace member, an import, the API, or email sync. |
| Timestamp | Datetime | `2026-06-11T14:32:00Z` | When the record was created. |

To use these outputs in later blocks, reference the created record as `{{ steps.record_created.record }}`, the actor as `{{ steps.record_created.actor }}`, and the creation time as `{{ steps.record_created.timestamp }}`.

## Behavior

The trigger runs once for every record that enters the selected object. It does not remove duplicates, and it does not group records into batches. The source does not matter. Each of these creates one run: a record typed into the grid, a record upserted through the API, a record captured by a connected form, or a record auto-created from an inbound email. (Upsert means insert the record if it is new, or update it if a match already exists.)

A CSV import is the case to watch. Importing a 5,000-row file fires the trigger 5,000 times. That queues 5,000 independent runs of the whole workflow. If those runs write data or call AI, the import becomes a large, mostly unintended bill.

The record handed to the trigger reflects its state at the instant of creation. That state is often nearly empty. The important attributes usually fill in a moment later, through enrichment, a second API call, or a later edit. (Enrichment means filling in details like company size or industry from an outside data source.) So when your logic depends on a specific value being present, the creation event may arrive too early to act on it. Use the [Filter](/reference/conditions/filter) block to drop runs that lack the data you need. Do this before any paid block executes.

## Gotchas

* **An import fires the trigger once per row.** Bulk imports treat every row as a separate creation, so a 5,000-row CSV queues 5,000 runs. Add a [Filter](/reference/conditions/filter) immediately after the trigger. Avoid pointing AI blocks at this trigger on a busy object.
* **Email sync creates records too.** On workspaces with email auto-creation enabled, People and Companies records appear constantly with thin data. Filter on the attributes you actually need before any block acts on the record.
* **The record is often empty at creation.** Attributes frequently land a moment later through enrichment or a follow-up write, so a value you expect may be missing. When a rule depends on a specific attribute, trigger on [Attribute value changed](/reference/triggers/attribute-value-changed) for that attribute instead. That trigger fires even when the value is set during creation.

## Examples

### Routing inbound leads without a webhook

Use **Record created** on People as a webhook-free intake for inbound leads. From there you can enrich the company, add the lead to a list, and assign an owner.

| Field | Value |
| - | - |
| Trigger | Record created |
| Object | People |
| Next block | [Filter](/reference/conditions/filter): `email` is not empty and Updated by is not Workflow |
| Then | [Create or update record](/reference/records/create-or-update-record) for the company, matched on domain |
| Then | [Add record to list](/reference/lists/add-record-to-list): Inbound |
| Then | [Round robin](/reference/workspace/round-robin) to assign an owner |

A new People record for `jane@acme.com` is enriched against `acme.com`, added to the Inbound list, and assigned to the next owner in rotation, all without a webhook. The full build is in [Round-robin lead routing](/guides/route-and-sequence/round-robin-routing).

### Guarding against a noisy import

Use a [Filter](/reference/conditions/filter) as the first block to keep an import from triggering expensive work on thousands of thin records.

```json theme={null}
{
  "trigger": "Record created",
  "object": "Companies",
  "filter": {
    "domain": { "is_not_empty": true }
  }
}
```

A 5,000-row import still fires the trigger 5,000 times. But only the rows that carry a domain pass the filter. So the [Find records](/reference/records/find-records) and AI blocks downstream never run on the thin rows that make up most of the bulk load.

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

* [Attribute value changed](/reference/triggers/attribute-value-changed)
* [Record added to list](/reference/triggers/record-added-to-list)
* [Choosing the right trigger](/explanation/triggers)
* [Round-robin lead routing](/guides/route-and-sequence/round-robin-routing)
* [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.