The API has an “upsert company” endpoint.
This is beyond useful compared to the much more fragile process of creating a contact:
- The “create contact” endpoint 409’s if there is a conflict - it does return the id in the message, which is good, but it should do so in a more structured way. Having to rely on this is finnicky.
- Having to then call 3 endpoints is tedious and leaves the door open for race conditions (which I’ve definitely experienced), e.g. search contacts, not found, then conflict on create contact.
- search contacts
- if found
- update contact
- if not found
- create contact
- I’ve actually noticed it’s more reliable to call create contact, then handle the 409 conflict with the returned id.
Anyway, I think there’s a huge opportunity for improvement and symmetry in the API by adding an “upsert contact” endpoint.
- This would mirror the well done “upsert company endpoint”
- It would eliminate the mentioned poor user experience.
