Contacts
Upsert a contact asynchronously. (Strongly recommended)
Upsert a contact asynchronously in the Qomon database.
When upserting, the system tries to find an existing contact to update using the following strategy (in order). If no match is found, a new contact is created.
1. Match by ID
- If an
idis provided and matches an existing contact, that contact will be updated (can be a contact ID or nationbuilder ID).
2. Match by email + name
- If no ID is provided (or it didn’t match), the system searches for contacts with the same
mail. - Among the results, if
firstnameis provided, it must also match. Ifsurnameis provided, it must also match. (An empty value forfirstnameorsurnamemeans the field will not be used for matching.) - If a match is found, that contact is updated.
3. Match by surname + firstname + birthdate + address
- If no match was found by email, and a
surnameis provided, the system searches for contacts with the samesurname. - Among the results,
firstnamemust match. - If both the incoming and the existing contact have a
birthdate, they must match exactly. - If both contacts have an
address, thecityorpostalcodemust match. If no birthdate comparison was made, thestreetmust also match. - If all the above conditions are met, that contact is updated.
4. No match found
- If none of the above strategies found a match, a new contact is created.
⚠️ If the
idorlabelof an advanced field, or thevalue(for non-free-text fields), does not exist, the contact will not be updated or created. Errors will not be logged.
💡 For consents, level_of_support, custom_fields, survey, tasks:
- See details in above description.
- Found
id,label,valuein GET /forms/ endpoint.
POST
Documentation Index
Fetch the complete documentation index at: https://api.qomon.com/llms.txt
Use this file to discover all available pages before exploring further.
Last modified on May 19, 2026