Submissions

Duplicate detection

When a form is submitted, Forms checks whether a matching record already exists in your Attio workspace. If a match is found, the existing record is updated instead of creating a duplicate.

How matching works

Matching is based on the type of Attio object:

People

The submitted email address is used to find an existing Person record. If a Person with that email already exists, the submission updates that record.

Forms checks the standard email_addresses attribute.

Companies

The submitted domain is used to find an existing Company record. If a Company with that domain already exists, the submission updates that record.

Forms checks the standard domains attribute.

Other objects

For custom objects or objects without email/domain attributes, a new record is created on every submission unless a unique attribute constraint exists on the object in Attio.

What happens on a match

When a matching record is found:

  • New values are written to the record, updating any fields that were submitted
  • Existing values on fields not included in the form are left unchanged
  • For multi-select fields, new values are appended (not replaced)
  • List entries are always created as new entries, even if the parent record was matched

When no match is found

A new record is created with all the submitted field values.

Duplicate detection also applies to related object sections. If your form creates both a Company and a Person, each is matched independently — the Company by domain, the Person by email.

Tips

  • Make sure your form includes an email field (for People) or domain field (for Companies) to enable duplicate detection
  • Duplicate detection is automatic — there is no setting to enable or disable it
  • If a match fails (e.g. Attio API timeout), the submission falls back to creating a new record