I would like to make a case for the ability to search CIM Customer Profiles using the XML interface:
We have several applications, each using it's own database, located in remote parts of the world with frequently flakey internet access. Each application has the possibility of creating and using CIM Customer Profiles. Managing the CIM Customer Profile ID's between these applications is a huge hassle. We've had to develop customized synchronization functions to maintain data integrity of our scattered local CIM tables. And still, due to local internet outages and occasional user error, we end up with two different customers accidentally sharing the same CIM Customer Profile ID, or sometimes one customer will have multiple CIM Customer Profiles. This causes customer freak-outs and admin headaches.
It would be so much easier for us if we could search the Authorize CIM database using a call similar to getCustomerProfileIdsRequest, but with search capabilities. If we could use this call, passing a single (or list of) merchantCustomerID, customerProfileID, customerEmail, we would be relieved of the -maintenance overhead of linking our customers to CIM Customer Profiles.
If you consider the Authorize CIM database as part of the greater database application that we (or anyone) have built, the merchantCustomerID in the CIM Customer Profile is THE link between the two. Storing this link locally in our own databases is creating multiple points of truth and adds an extra layer of complexity to our databases and our applications.
Here's what I would love to see as added functionality to the getCustomerProfileIdsRequest:
Request:
getCustomerProfileIdsRequest
Input Parameters:
name: name
transactionKey: transactionKey
merchantCustomerID: string of comma-separated ids, OR'd
customerProfileID: string of comma-separated ids, OR'd
customerEmail: string of comma-separated ids, OR'd
Each of the input parameters would be OR'd. The result would be a string of customerProfileIDs that match any of the criteria.
Thanks,
Bill