BI integration

Data about your customer feedback is a key component of your overall business intelligence, and your system makes it simple to keep your BI tools up-to-date with the information you rely on.

How it works

Your system includes in depth report building capability. All reports come with a secure, built in API allowing them to be accessed from other systems in XML or CSV format. Therefore building a BI integration is a case of defining the data you are interested in and accessing it on schedule in the best format to be imported into your BI tools.

Setting up your BI feeds

The first step in any BI integration is to define the data you require. We would suggest you start by setting up the following Ad-hoc reports, selecting the REST API format:

  • Cases with recent activity (select "All case attributes" )
  • Correspondence sent
  • Tasks completed
  • Classifications for cases with recent activity
  • Redress for cases with recent activity
  • Corrective actions for cases with recent activity

Note that selecting "All case attributes" creates a snapshot of attributes available at that time. If you run through the report wizard again then this can refresh the snapshot and alter your report definition.

Accessing your BI feeds

Once your data is defined, it can be accessed using the GetReport API, for example:


The input parameters for the GetReport API call are as follows, and can be sent as GET or POST (recommended for security reasons):

Parameters indicating reporting period required in XML Date/Time format:

  • FromTime
  • UntilTime

Other parameters:

  • access_token (Access token provided by the iCasework OAuth authentication process)
  • ReportId
  • ContentType (optional. Set to text/csv, text/comma-separated-values, application/csv or text/plain to access data transformed to CSV)
  • CSVHeader (optional, set to true to show CSV header row, defaults to false)
  • CSVDelimiter (optional, set alternative CSV delimiter. Defaults to “,”)
  • CSVFields (optional, sets specific columns to be output in the CSV. Default behavior is to output all columns defined in requested report)
  • CSVFooter (optional, outputs a rowcount to the bottom of the CSV file for reconciliation purposes)
  • db=[ACCOUNT] (static value, only required in UAT)

On success, your API call will produce an XML or CSV document containing your BI data. On failure you will receive an HTTP error code, and an HTML message giving further details of the problem.

Building your integration service

Finally you should plan and implement and schedule an ETL service, in order to import data produced by your BI feeds as often as you need it refreshed. We would recommend that you load data overnight for the previous day, so your service would need to call the GetReport API for each of your BI feeds on a nightly basis, with the FromTime and UntilTime parameters set to cover the previous day from 00:00:00.000 to 23:59:59.999. We would also recommend that you use the CSVFields parameter wherever you use the "All case attributes" option in reports, as this ensures your output is not subject to unexpected change should any new fields be added to your system configuration and someone update the report by moving through the wizard.

Your service should keep track of any failed API calls and either retry automatically where appropriate or alert your engineers to fix the issue and retry. If automatic retry on failure is not possible we recommend you build your API calls to request a longer time period, e.g. 5 days to ensure that the system will be robust enough to catch up should there be temporary issues.


Civica 2020. All Rights Reserved