Article

    Duplicate detection | Forms Help

    3 min read
    Last updated 4 days ago

    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, the default behavior is:

    • Submitted values overwrite the existing values on the record, field by field
    • Existing values on fields not included in the form are left unchanged
    • List entries are always created as new entries, even if the parent record was matched

    You can change how each field behaves on a match using write modes:

    • Overwrite (default): the submitted value replaces the existing value
    • Don't overwrite: skip the field entirely if the record already has a value
    • Append (multi-value fields only): add the submitted value to existing values without removing anything. Applies to multiselect, record references, email addresses, phone numbers, and domains. Duplicates are skipped automatically

    Write modes are configured per field in the Build tab. They only apply when updating a matched record. New records always write every submitted value.

    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