Connecting external Data Sources (e.g. your CRM)

atfinity allows you to connect external instance data sources so users can copy values from those directly.

To connect an external data source, follow these steps:

  1. Specify your Data Source under Administration -> Data Sources First, name the data source and create it. Then specify the urls where atfinity should send list and retrieve requests. A list request should return a selection of instances where users can copy values from. A retrieve request returns values for a single instance.

  2. Specify the data source for an ontology Open any ontology under configuration -> ontologies. Under "External Data Source" mention the source you have just created.

Requirements on your API

List Request

URL

atfinity will append ?q=QUERY to the url specified for the list request and make a GET request to this url. So specifying https://api.yourcrm.com/api/search_person would make a request tohttps://api.yourcrm.com/api/search_person?q=QUERY.

Request Header

Key

Value

Content-Type

application/json

From

The email of the user making the request

Custom

Your specified key and value from Administration -> Data Sources

Response

atfinity expects to receive JSON looking like this. The name will be displayed to the user and the identifier will be used for the retrieve request. Both can be arbitrary strings.

{
"data": [
{
"identifier": "10098",
"name": "Thorben Croisé"
},
{
"identifier": "10099b",
"name": "Alexander Balzer"
}
],
"meta": {
"pagination": {
"count": 2,
"page": 1,
"pages": 1
}
}
}

Retrieve Request

URL

atfinity will append the value of IDENTIFIER acquired in the list request to the url and make a GET request to this url. So specifying https://api.yourcrm.com/api/person/ would make a request tohttps://api.yourcrm.com/api/person/IDENTIFIER .

Request Header

Key

Value

Content-Type

application/json

From

The email of the user making the request

Custom

Your specified key and value from Administration -> Data Sources

Response

atfinity expects to receive JSON looking like this. All the values within data will be tried to match to information keys of the ontology of the instance this request has been made for.

{
"data": {
"cid": "1",
"first_name": "Thorben",
"last_name": "Croisé"
}
}