Request a presentation.

The process is as simple as this:

  • Complete the form
  • One of our customer experience experts will contact you
  • You’ll experience the Customer Experience Platform and get answers on all your questions

Integration to Relationwise (Transactional)

The (RESTful) web service guide below is a single method for pushing data to Relationwise every time a transaction (event trigger) on your system requires an email to be sent to a customer. For example, when an invoice is sent, then push some data about the customer to Relationwise, so that we can then send them a survey invitation email.

The only technical prerequisite for using this RESTful web service is that your system can run any language that fully supports communication via the HTTP protocol.

REST is now the most popular Web service design model. Here's what Wikipedia has to say about RESTful web services:

Push data to Relationwise

It is only necessary to use a single web service method, simply called "Send", to push a customer's data to Relationwise. When data is received by Relationwise, we create a new recipient (containing name, email/ or mobile and additional variables) and schedule an email with a survey link (or sms) to be sent to the recipient.

The most important part of the integration is calling the send method when a trigger event occurs that requires a customer to receive the survey. This event should typically execute immediately after you've delivered a product or service to the customer (we recommend avoiding batching). Common examples include:

  • Immediately after a customer receives an invoice.
  • Immediately after a service employee interacts with a customer.

Technical details The Request will be of type POST and the URI for the send method is:
Request headers
Header Required Value/Description
Content-Type YES text/xml
key YES Your authentication API key.
Request body The body part of the request will be a simple XML document that contains a list of variables. Every request must include an Identity variable which tells our server the name and e-mail (or mobile number) of the survey recipient.

Variables are typically made up of human readable names and machine-friendly unique identifiers (without UIDs we'd have a mess if two variables had the same human name).
Required Variable description
The Identity variable is mandatory and must contain the recipient's name in the <value> tag, and the E-mail or Mobile number * of the recipient in the <UID> tag. Example:
<Variable> <Name>Identity</Name> <Value>Steven Jensen</Value> <UID></UID> </Variable>

*  Mobile numbers can only be used if your account is configured with SMS surveys.
Basic variables are used to associate extra useful data to the recipient. Add extra information, like customer number or telephone number etc. For these variables only Name and Value tags are required (but it is not necessary to have a UID, because they won't be used for filtering, benchmarking or managing access to data). Example:
<Variable> <Name>CustomerNr</Name> <Value>002457</Value> </Variable>
Key variables should be used if you wish to filter, benchmark and/or manage access to the recipient's respondent data. In addition to Name and Value (which are mandatory for all variables), UID is also necessary to uniquely identify the recipient when we filter and benchmark results in our frontend applications or API. For example, if the variable is named SalesRep (e.g. the sales representative who is primarily responsible for the recipient's customer experience), then UID will be a unique employee number and the Value will be the sales representative's human readable name. Example:
<Variable> <Name>SalesRep</Name> <Value>Christian Andersen</Value> <UID>007</UID> </Variable>
Finally, if you put the whole thing together and put some xml, recipient and variable tags around it, you get:
<?xml version="1.0" encoding="UTF-8"?> <Recipient> <Variable> <Name>Identity</Name> <Value>Steven Jensen</Value> <UID></UID> </Variable> <Variable> <Name>CustomerNr</Name> <Value>002457</Value> </Variable> <Variable> <Name>SalesRep</Name> <Value>Christian Andersen</Value> <UID>007</UID> </Variable> </Recipient>

Code example The following code example uses in the most direct "no frills" way possible to get the job done. This code example uses the custom variables that you've already configured.
/* REQUEST */ HttpWebRequest request = WebRequest.Create("") as HttpWebRequest; request.Method = "POST"; request.ContentType = "text/xml"; request.Headers["key"] = "YOUR-AUTHENTICATION-API-KEY"; string xml = " <?xml version="1.0" encoding="UTF-8"?> <Recipient> <Variable> <Name>Identity</Name> <Value>Steven Jensen </Value> <UID></UID> </Variable> <Variable> <Name>Department</Name> <Value>INSERT-VALUE-HERE</Value> </Variable> <Variable> <Name>Country</Name> <Value>INSERT-VALUE-HERE</Value> </Variable> </Recipient> "; byte[] data = Encoding.UTF8.GetBytes(xml); using (Stream stream = request.GetRequestStream()) stream.Write(data, 0, data.Length); /* RESPONSE */ string status = string.Empty; string details = string.Empty; using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { status = response.StatusCode.ToString(); details = response.Headers["Details"]; }