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

# The Property Agent object

> AI auto-fill. The config attached to a property that fills its value with AI.

A **property agent** is Custral's AI auto-fill: a configuration attached to a
single property (column) that fills the property's value with AI. When it runs (manually, or on a record event)
it reads its declared sources (the record's own
fields and, for research, the web) and writes a value into the property.

One auto-fill is allowed per property. The endpoints in this section let you
**list**, **retrieve**, **set up**, **update**, and **delete** them. To *run* a
record's configured auto-fills, enrich the record through the MCP `enrich_record`
tool or the in-app **Run AI auto-fill** action.

<ResponseExample>
  ```json The Property Agent object theme={null}
  {
    "id": "pagent_3Ab9xK2mQ7",
    "objectId": "obj_2Zk1",
    "propertyId": "prop_industry",
    "kind": "research",
    "instructions": "Using the record's Website, output the company's industry.",
    "model": "auto",
    "sources": { "recordContext": true, "workspacePages": false, "web": true },
    "triggerTypes": [],
    "recurringCron": null,
    "scopeFilterJson": null,
    "dependsOn": [],
    "requiresProperties": [],
    "onlyIfEmpty": false,
    "isEnabled": true,
    "createdAt": "2026-08-10T12:00:00.000Z",
    "updatedAt": "2026-08-10T12:00:00.000Z"
  }
  ```
</ResponseExample>

## Attributes

<ResponseField name="id" type="string">
  Unique identifier, prefixed `pagent_`.
</ResponseField>

<ResponseField name="objectId" type="string | null">
  The object (`obj_`) the target property belongs to.
</ResponseField>

<ResponseField name="propertyId" type="string | null">
  The property (`prop_`) this auto-fill writes to. Unique, one auto-fill per property.
</ResponseField>

<ResponseField name="kind" type="string | null">
  The behavior preset: `summarize` (derive from the record's own fields),
  `research` (use the web), `classify` (pick select option(s)), or `prompt` (run
  an arbitrary instruction).
</ResponseField>

<ResponseField name="instructions" type="string | null">
  The natural-language instruction telling the AI what to output for the property.
</ResponseField>

<ResponseField name="model" type="string | null">
  The model the agent runs with. `auto` uses the workspace default.
</ResponseField>

<ResponseField name="sources" type="object">
  Which context the agent reads from: `recordContext` (the record's own fields)
  and `web` (web research). `workspacePages` is not settable over the API and is
  always `false`.
</ResponseField>

<ResponseField name="triggerTypes" type="array">
  The automatic triggers: any of `onCreate`, `onUpdate`, `recurring`. An empty
  array means the auto-fill runs only when invoked manually.
</ResponseField>

<ResponseField name="recurringCron" type="string | null">
  The cron expression for the `recurring` trigger, or `null`.
</ResponseField>

<ResponseField name="dependsOn" type="array">
  `propertyId`s of other auto-fills on the same object that must run before this
  one during object-level enrichment.
</ResponseField>

<ResponseField name="requiresProperties" type="array">
  `propertyId`s that must hold a non-empty value on the record before this agent
  runs; otherwise the run is skipped.
</ResponseField>

<ResponseField name="onlyIfEmpty" type="boolean">
  When `true`, the agent only writes if the property is currently empty,
  protecting human-entered values.
</ResponseField>

<ResponseField name="isEnabled" type="boolean">
  Whether the auto-fill is active. Set `false` to pause it without deleting it.
</ResponseField>

<ResponseField name="createdAt" type="string | null">
  ISO 8601 creation timestamp.
</ResponseField>

<ResponseField name="updatedAt" type="string | null">
  ISO 8601 last-update timestamp.
</ResponseField>


## Related topics

- [Property Auto-Fill Agents](/ai/property-agents/overview.md)
- [List auto-fill agents](/api-reference/property-agents/list-auto-fill-agents.md)
- [Retrieve an auto-fill agent](/api-reference/property-agents/retrieve-an-auto-fill-agent.md)
- [Delete an auto-fill agent](/api-reference/property-agents/delete-an-auto-fill-agent.md)
- [Update an auto-fill agent](/api-reference/property-agents/update-an-auto-fill-agent.md)
