...
Fetching a user record simply requires two attributes included in a GET call to the user web service. Example:
Code Block | ||
---|---|---|
| ||
http://<domain>/connector/api/2011-11/user?client_id=xxxx&club_id=xxxx&uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&provider=PROVIDER_ID |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<user> <providerInfo> <identifier>PROVIDER_ID</identifier> <clientID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</clientID> <clubID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</clubID> <recordID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</recordID> </providerInfo> <userInfo> <firstname>Foo</firstname> <lastname>Bar</lastname> <birthdate>1972-03-12</birthdate> <gender>M</gender> <userStatus>ACTIVE</userStatus> <userType>PROSPECT</userType> <address1>1234 Fake St</address1> <address2>Apartment 1a</address2> <city>Spuzzum</city> <zipcode>12345</zipcode> <state>WA</state> <country>US</country> <mobile>555-555-5555</mobile> <email>foo@bar.com</email> <homePhone>555-666-6666</homePhone> <workPhone>555-777-7777</workPhone> <company>Acme Widgets</company> <createdBy>INTOUCH</createdBy> <createdDate>2012-04-10T04:11:07.023Z</createdDate> <modifiedBy>INTOUCH</modifiedBy> <modifiedDate>2012-04-10T04:11:07.023Z</modifiedDate> </userInfo> </user> |
...
Here is a sample piece of XML which should be POST’ed to the user web service (note: subject to change before launch)
Code Block | ||||
---|---|---|---|---|
| ||||
<user> <providerInfo> <identifier>PROVIDER_ID</identifier> <clientID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</clientID> <clubID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</clubID> <recordID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</recordID> </ providerInfo > <userInfo> <firstname>Foo</firstname> <lastname>Bar</lastname> <userStatus>ACTIVE</userStatus> <userType>PROSPECT</userType> </userInfo> </user> |
...
- The <user> tag needs to wrap the entire record
- Note: Though shown as GUID/UUIDs, the values for the IDs (identifiers) can effectively be anything; it does not have to be a real GUID/UUID.
- Reminder: The value of the <recordID> tag is YOUR identifier. ALL communication with the Connector is done using your identifier.
- The <providerInfo>tag provides all the information necessary for Connector to process the record. This includes
- <clientID>: The ID number of the client for this user record in the source provider (i.e. your system)
- <clubID>: The ID number of the location for this user record in the source provider.
- <recordID>: The ID number of the user in the source provider
- <identifier>: This is a set identifier which will be used to know who sent the record (i.e. the provider). This value will be given to you and must be sent for every web service call
- The <userInfo> tag provides all the details for the actual user. Please see the user fields table for full details.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<response xmlns="http://www.intouchfollowup.com/api/2011-11"> <uuid>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</uuid> </response> |
The return value contains a <response> element which contains the UUID of the record within the Connector.
Staff
The Connector supports the saving of Note: Though you may save this ID in your system it is not necessary as all communication with the Connector is done using your own identifiers
Saving Lead/Opportunity Data
TODO
Staff Are Users Too
The Connector supports the saving of staff as well. The staff web service has a different URL but is syntactically identical to the user web service with the exception that the <user_type> <userType> element must be STAFF.
Code Block | ||||
---|---|---|---|---|
| http://<domain>/connector/api/2011-11/staff
| |||
http://<domain>/connector/api/2011-11/staff |
Synchronizing Staff
When a new client is launched on the Connector, it is more than likely that they have been using one or more of the systems being integrated for awhile. This means that each system may already have staff in it. The presents a problem for systems that support assigning a staff owner to a prospect or a member. The question is, how do we synchronize the staff list so that the staff in system A are mapped to system B. The problem is usually compounded by a few issues
- Some systems do not have API calls to create or update staff. So how do we synchronize staff if we can't create them?
- Sometimes staff have already been added to both systems? Even if both systems have the ability to create staff in the API this doesn't help us.
- When
Lead Sources
The Connector supports lead sources as well.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<leadSource> <providerInfo> <identifier>INTOUCH<<identifier>PROVIDER_ID</identifier> <clientID>1111<<clientID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</clientID> <clubID>11111111<clubID>xxxxxxxx-1111xxxx-1111xxxx-1111xxxx-111111111111<xxxxxxxxxxxx</clubID> <recordID>FACEBOOK<<recordID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</recordID> </providerInfo> <leadInfo> <name>Facebook</name> <active>true</active> </leadInfo> </leadSource> |
...