Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Fetching a user record simply requires two attributes included in a GET call to the user web service. Example:

Code Block
titleSample fetch URL Request using GET
http://<domain>/connector/api/2011-11/user?client_id=xxxx&club_id=xxxx&uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&provider=PROVIDER_ID

...

Code Block
languagehtml/xml
titleSample return XMLResponse
<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
languagehtml/xml
titleSample save XMLRequest
<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
languagehtml/xml
titleSample return XMLResponse
<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.

http://<domain>/connector/api/2011-11/staff
Code Block
titleStaff Web Service URL
Staff Web Service URL
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

  1. Some systems do not have API calls to create or update staff. So how do we synchronize staff if we can't create them?
  2. 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.
The solution of how the Connector attempts to overcome these issues is as follows:
  • When

Lead Sources

The Connector supports lead sources as well.  

...

Code Block
languagehtml/xml
titleRequest
<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>

...