Pushing Data
Goal: Continuous Synchronisation
It is important that Complero has always a complete and up-to-date
representation of all the contact data in a CRM or customer database.
Complero continuously monitors the contact data to detect changes,
life events, and situations where update actions can be taken.
The goal is that Complero has 100% of same data as the Company all the time. There are two approaches that work in general depending on the actual abilities of your systems:
1. Triggers
Detect changes in Employees & Contacts and push them to Complero at the moment when they occur.
Entity | Action | Comment |
---|---|---|
Employee | new | |
Employee | changed | |
Employee | deleted | |
Contact | new | |
Contact | changed | |
Contact | deleted | |
Contact | other Employee | In case a Contact got reassigned to a different sales agent. |
2. Periodically
Alternatively, regular sync of all changes, e.g. once per night push all changes of the day.
Uploading Data to Complero
Rate limits
Uploading data is rate limited to ensure the robustness of our system's data processing capabilities. The rate limit is 20 req/s per IP. Every request's payload can include up to 1000 Contacts.
Data processing
Complero accepts the uploaded data and returns with an HTTP Accepted (202) status as soon as possible. The actual import happens asynchronously in an internal queue system that ensures no data is lost in case of error and persisting is reattempted internally until successful. Uploading a batch of 1000 Contacts usually takes seconds. This monitorable process of uploading is what will be referred to as an Operation.
Every upload request maps internally to an Operation that can be fetched to monitor the upload's progress. Every Operation contains items corresponding to the entity being uploaded (Contact, Employee). The HTTP response to every POST request contains an "Operation-Id" header. This ID can be used in the get operation endpoint to monitor its progress.
Operation status | Meaning |
---|---|
pending | The Operation has yet to start or is in progress. |
success | The Operation has completed successfully. |
error | An error has ocurred during processing. |
multi | Not all Operation items have the same status. Check each item individually. |
Order
-
Sync Employees first, then Contact (or the default Employee will be assigned).
-
What if the sent Contact is older than the last Update of a Contact? ⇒ the Company is considered acting on purpose, so the Contact gets updated with the latest data because e.g. it’s a change coming from the hotline.
-
Can a Contact be uploaded multiple times?
- Events explained:
- Create - Contact is seen by Complero for the first time and is created
- Sync - Contact already exists and got updated with new data (originating from the Company)
- Update - Contact already exists and got updated by the Contact himself via Complero
- Confirm - Contact confirmed his data as still valid
- Events explained:
Selection rules
Send every active Contact. The Customer’s success manager can filter Contacts in and out via Complero. Use the Tag field of an Employee and Contact to support this filtering.
Contacts that are blacklisted or have a general communication stop shall not be transmitted.
Matching Of Contacts
Primary key, if given. For data transferred to Complero a PK is required.
For Updates from the Portal, no primary key is available and client has to do manual matching
Employees
When Employee data changes (new Employee, data change, leaving Company, other contact data) it needs to be synchronised to Complero.
All old Requests will see current Employee data (Employees are not versioned). So e.g. if an Employee changes his phone number it is immediately available for all past and new Requests