DRAFT
Date: Nov 28, 2012
Last Updated: Dec 20, 2012
About
The Pull Model is a way for Integration Partners to request records that are new or updated since last time they called. This model is useful in a scenario where the usual real-time synchronization model will not work.
Process
The Integration Partner initiates a "pull" from the Connector. Sample URL is:
<URL>/connector/api/2011-11/missingusers?provider=XYZ&clientID=TEST_CLIENT&clubID=TEST_CLUB
- This will return a list of ALL users in the Connector database that meet one of two conditions
- The Connector does not have a XYZ User ID for that user (i.e. new user)
- The record has been modified since the last time XYZ fetched (and sync'ed) the user (i.e. updated user)
- Note this list is limited to 50 records, last in first out
- Sample response is below
- How the Integration Partner handles the lookup is up to them. What MUST happen is a callback to the Connector which is an acknowledgement that "I've sync'ed this user". A sample web service call here is a POST to <URL>/connector/api/2011-11/user/callback with the ID from the system making the pull (example below)
- After this callback is made, the user will not appear in the pull call again (unless the user is updated again in InTouch)
Examples
Example Pull Response
<user> <userInfo> <connectorUUID>ce507497-992c-4eb8-bc7e-b0d46e7aa53f</connectorUUID> <createdBy>INTOUCH</createdBy> <createdDate>2012-06-28T18:26:29.101Z</createdDate> <modifiedBy>INTOUCH</modifiedBy> <modifiedDate>2012-07-03T23:55:49.937Z</modifiedDate> <firstname>John</firstname> <lastname>Doe</lastname> <userStatus>ACTIVE</userStatus> <userType>PROSPECT</userType> <address1/> <city/> <zipcode/> <country>US</country> <mobile>(213) 688-1441</mobile> <email>dblack@goldsgymla.com</email> <homePhone/> <workPhone>(213) 688-1441</workPhone> <company/> </userInfo> <userInfo> snip... repeat userInfo segments here </userInfo> </user>
Callback Example
<user> <providerInfo> <identifier>XYZ</identifier> <clientID>100</clientID> <clubID>200</clubID> <recordID>1001</recordID> </providerInfo> <userInfo> <connectorUUID>ce507497-992c-4eb8-bc7e-b0d46e7aa53f</connectorUUID> </userInfo> </user>