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)
1.
The record has been modified since the last time XYZ fetched (and sync'ed) the
2.
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 contents
such as that below
After this callback is made, the user will not appear in the pull call again (unless the user
is updated again in InTouch)
1.
2.
3.
4.
5.
6.
Pull Response Example:
<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>