Setup

Next Matter provides a RESTful API to customers and the full technical documentation can be found at https://core.nextmatter.com/api/docs/

All Next Matter processes can be accessed in full to push data from other systems or retrieve information. A custom process endpoint, deployed live!

To get started you need an API-Key, which customers can request from our support team. The API-Key can be either tied to an individual user in your workspace or to a Bot User that is created for that purpose.

The two most popular endpoints are

  • /instances

  • /complete_step

Header configuration

In order to use any endpoint you need to pass along the API key as a header like this:

Content-Type: application/json
Authorization: Api-Key [PROVIDEDKEY]

/instances

Endpoint: https://core.nextmatter.com/api/instances/

Simple sample body to launch a new instance of a process without tags, priority or deadline set.

{
"process": "https://core.nextmatter.com/api/processes/[IDoftheprocessinNM]/",
"name": "[Name of the instance]"
}

/complete_step

Endpoint: https://core.nextmatter.com/api/instances/{{instance_id}}/complete_step/

The instance id can be retrieved in various ways, for example

  • URL of the instance in the Browser

  • Data referencing variable directly in Next Matter via {{instance_id}} in the editor

  • GET requests or a response from the creation of an instance like in the previous example

Sample Body für die Vervollständigung eines String Input Felds

{
"step_id": 20111,
"actions": [
{
"action_id": 50222,
"input_object": {
"inputValue": "STRING"
}
}
]
}

The step IDs can be retrieved directly in the URL of the executor or the editor. The action ids can be retrieved via GET Request.

Additional prerequisites for a successful call:

  • Active step

  • Step ownership of the user API-Key

Customers are making these calls also with third party integration layers like Zapier or Integromat.

This is an advanced functionality of Next Matter that is only sketched briefly in this article. Please reach out to us directly if you have any further questions around integrating your existing (propietary) apps seamlessly with Next Matter.

During our onboarding we usually guide our customers to setup their integrations with existing systems.

Sample request bodies for all action types

Address:

{
"step_id":70938,
"actions": [
{
"action_id":200952,
"input_object": {
"city":"city",
"street": "street",
"zipCode": "zipCode"
}
}
]
}

Checklist:

{"step_id":70954,
"actions":[
{
"action_id":200997,
"input_object":{
"allItems": [
{"name": "Option A", "value": 1, "checked": true},
{"name": "Option B", "value": 2}
],
"itemsChecked": ["Option A"],
"itemsNotChecked": ["Option B"],
"numberOfItemsChecked": 1,
"numberOfItemsNotChecked": 1
}
}]
}

Date:

{
"step_id":70955,
"actions":[
{
"action_id":200998,
"input_object":
{
"date": "2021-06-16T10:00:00.000Z"
}
}
]
}

Multi-Value Dropdown:

{
"step_id":70959,
"actions":[
{
"action_id":201007,
"input_object":
{
"itemsSelected": ["Option A", "Option B"]
}
}
]
}

Radio:

{
"step_id":70960,
"actions":[
{
"action_id":201006,
"input_object":
{
"radioItemSelected": "Option A"
}
}
]
}

Single Value Dropdown:

{
"step_id":70961,
"actions":[
{
"action_id":201005,
"input_object":
{
"itemSelected": "Option A"
}
}
]
}

String:

{
"step_id":70962,
"actions":[
{
"action_id":201004,
"input_object":
{
"inputValue": "Example"
}
}
]
}

Text:

{
"step_id":70963,"actions":[
{
"action_id":201003,
"input_object":
{
"inputValue": "sdf"
}
}
]
}

URL:

{
"step_id":70964,
"actions":[
{
"action_id":201002,
"input_object":
{
"url": "http://nextmatter.com"
}
}
]
}

Instruction:

{"step_id":71896,"actions":[
{
"action_id":203710,
"input_object": {}
}
]}

The instruction action does allow an empty input object.

Responses from the Next Matter API

The response to any API call regarding an instance is always the full data set of the instance and looks similar to this (abbreviated) JSON:

{
"url": "https://core.nextmatter.com/api/instances/281931/",
"id": 281931,
"started_time": "2021-06-18T12:21:48.138028+02:00",
"completed_time": null,
"aborted_time": null,
"last_updated_time": "2021-06-18T12:22:11.023101+02:00",
"process_snapshot": {
"id": 6300,
"name": "Complete Step",
"description": null,
"steps": [
{
"id": 71896,
...

This can be used to read back any of the information that is already part of the instance. And works similar to the next feature.

Getting information about an instance

With a GET request to the instance resource you can get the full set of information about it:

GET https://core.nextmatter.com/api/instances/281931/

returns (abbrev.)

{
"url": "https://core.nextmatter.com/api/instances/281931/",
"id": 281931,
"started_time": "2021-06-18T12:21:48.138028+02:00",
"completed_time": null,
"aborted_time": null,
"last_updated_time": "2021-06-18T12:22:11.023101+02:00",
"process_snapshot": {
"id": 6300,
"name": "Complete Step",
"description": null,
"steps": [
{
"id": 71896,
...

Did this answer your question?