Skip to main content
All CollectionsEnboarder API DocsWorkflow Data
Enboarder API Docs: Workflow Details
Enboarder API Docs: Workflow Details

Report on your workflow data outside of Enboarder

Tegan Oakley avatar
Written by Tegan Oakley
Updated over a week ago

You’d like to keep track of your Enboarder workflow data in your company’s analytics platform? With our latest API update you can do exactly this: Automatically pull data from Enboarder for systems such as Tableau, Looker or Sisense.

This page contains information for different end points to export workflow reports.

Base URL:

Authorization:
All API requests must include a Header Key called "apikey" with a custom value that can be found in your account Settings. To find this value, navigate to Settings > Integration > Our Extensions

Workflow List Report:


Report End Point: {{baseURL}}/reports/workflows

HTTP Method: GET

Description: To get a list of workflow names and their ID's

Response:

 A array of workflow with below detail

  • id - Workflow unique id

  • name - Workflow name

  • IsActive - Status of  workflow 

{
    "count": 3,
    "items": [
      {
        "id": "O0lMYAwSv",
        "name": "Rest API Testing",
        "isActive": true
      },
      {
        "id": "Vr4Q_-ttA",
        "name": "Default Workflow",
        "isActive": true
      },
      {
        "id": "hx3cBcdvF",
        "name": "Rest API Testing",
        "isActive": false
      }
    ]
}

Workflow Properties Report

Base URL:


Report End Point: {{baseURL}}/reports/workflows/{id}/properties

HTTP Method: GET

Description: To get list of column list including categories, custom fields configured for this workflow

Param:

id - workflow unique id

Response:

Atrribute Name

Type

Detail

Name

String

Name of workflow

id

String

Unique identifier of workflow

fields

Array of JSON values

provides information of all categories, custom fields and stakeholders associated with workflow

fields → type = category

{ "id": "val_optional_kh5kiMa2Gb", "label": "Comics", "type": "category", "datatype": "picklist", "options": [ { "id": "kUBDjq1RE", "value": "DC" }, { "id": "9WbNyIAlDT", "value": "Marvel", "isCriteria": true }, { "id": "erg43mvMt", "value": "Raj", "isCriteria": true } ] }

Id - unique ID of category

label - Name of category

type - it will be category in this case

options - an array of available values of the category

options → id - unique id of value of category

options → value - actual value of category

options → isCriteria - present with value true if value is used in workflow

fields →type = category and label = Brand

{ "id": "brand", "label": "Brand", "type": "category", "options": [ { "id": "val_brand_YYwbHCtees", "value": "Avengers" }, { "id": "val_brand_xMk-x0g9xM", "value": "Justice league" } ] }

Id - unique ID of Brand

label - Name of Brand

type - it will be category in this case

options - an array of all brands which are selected in workflow

options → id - unique id of value of Brand

options → value - actual value of Brand

fields →type = category and label = Location

{ "id": "location", "label": "Location", "type": "category", "datatype": "text", "options": [ { "id": "val_location_zYNCxHkqu", "value": "Brisbane" }, { "id": "val_location_UY_J8JhnI", "value": "London" } ] }

id - unique ID of Location

label - Name of Location

type - it will be category in this case

options - an array of all locations which are selected in workflow

options → id - unique id of value of location

options → value - actual value of location

fields →type = customField

{ "id": "rkmPfSWO-", "label": "Description", "type": "customField", "datatype": "text" },

id - unique ID of custom field

label - Name of custom field

type - it will be customField in this case

data type -

  • text

  • Number

  • Date

  • picklist

isRequired - present with true value if its mandatory in workflow

options - an array of all values if datatype is picklist

options → id - unique id of value of custom field

options → value - actual value of custom field

fields →type = manager

{ "id": "4yczutrSZ", "label": "HR manager", "type": "manager", "datatype": "variable", "isRequired": true },

id - unique ID of manager

label - Name of manager

type - it will be manager in this case

data type -

  • variable - it will enter by User or send by API on workflow launched request

  • fixed - it will added by system automatically from configurations

isRequired - present with true value if its mandatory in workflow

An array of columns names and types.

{
  "name": "Sydney Series Test (10AM)",
  "id": "Nym2o7QcZ",
  "fields": [
    {
      "id": "HyXP8GBbOW",
      "label": "Color Value",
      "type": "customField",
      "datatype": "picklist",
      "options": [
        {
          "id": "Blue_SybPUMHbO-",
          "value": "Blue"
        },
        {
          "id": "Green_B1lDLfB-dZ",
          "value": "Green"
        },
        {
          "id": "Orange_HyGwLGSZd-",
          "value": "Orange"
        },
        {
          "id": "Red_B1vUzSWO-",
          "value": "Red"
        }
      ]
    },
    {
      "id": "SyEfMSZd-",
      "label": "Counter",
      "type": "customField",
      "datatype": "number"
    },
    {
      "id": "rkmPfSWO-",
      "label": "Description",
      "type": "customField",
      "datatype": "text"
    },
    {
      "id": "rJv7MrZu-",
      "label": "Reporting Date",
      "type": "customField",
      "datatype": "date"
    },
    {
      "id": "SJWEMBW_b",
      "label": "Reporting Time",
      "type": "customField",
      "datatype": "datetime"
    },
    {
      "id": "NJ8MAOqUJZ",
      "label": "Teacher",
      "type": "manager",
      "datatype": "variable"
    },
    {
      "id": "V161uKSS-",
      "label": "IT manager",
      "type": "manager",
      "datatype": "variable",
      "isRequired": true
    },
    {
      "id": "4yczutrSZ",
      "label": "HR manager",
      "type": "manager",
      "datatype": "variable",
      "isRequired": true
    },
    {
      "id": "Vkc2ZTBUZ",
      "label": "Payroll",
      "type": "manager",
      "datatype": "fixed",
      "isRequired": true
    }
  ]
}

Workflow Report with ID

Base URL:

End Point:  {{baseURL}}/reports/workflows/{id}/data

HTTP Method: GET

Description: To get list of workflow for a particular workflow id. By default return 1 year old data for selected workflow

Request Params (Optional):

Attribute Name

Type

Default Value

Description

id

String

Set it with workflow id for which you want to get data for a particular workflow.

launchStartDate

String

Current Date

Format: yyyy-mm-dd. Ex - 2020-02-14 By default it will put current date .

launchEndDate

String

Current Date - 12 months

Format: yyyy-mm-dd. Ex - 2019-02-14. By default it will put 1 year old date

nextKey

String

The api will return 500 records in response. To get next set of record, please send this value in next request with same filters. Note - If no further records needs to fetch then its value will be blank in response

/reports/workflows/hx3cBcdvF/data?launchStartDate=2019-12-18&launchEndDate=2020-02-20&nextKey=2020020614163Kex42oMoh

Param:

id - The id of the associated workflow launched record (initid)

workflow > id - The id of the associated workflow

workflow > name - The name of the associated workflow

{
"count": 3,
"items": [
{
"id": "202003180404Agh5PhEAV",
"employee": "test launch",
"mobile": "+9198XXXXXXXX",
"email": "vneet+tanag@enboarder.com",
"status": "in progress",
"startDate": "2020-03-18T12:00:00",
"launchDate": "2020-03-18T04:04:27",
"mode": "live",
"workflow": {
"id": "GLQeB7C27",
"name": "Asad - test Sutherland form signature stories"
},
"customFields": [
{
"id": "brand",
"label": "Brand",
"type": "category",
"datatype": "text",
"value": {
"id": "val_brand_imaPy3ot0",
"val": "David Jones"
}
},
{
"id": "location",
"label": "Location",
"type": "category",
"datatype": "text",
"value": {
"id": "val_location_4yMrck7S-",
"val": "Sydney"
}
},
{
"label": "Office Report Time",
"type": "category",
"datatype": "datetime",
"value": {
"id": "N18JrS6Y-",
"val": "09:30"
}
},
{
"label": "Reporting Date",
"type": "category",
"datatype": "date",
"value": {
"id": "rJv7MrZu-",
"val": "2020-03-18T12:00:00"
}
}
],
"managers": [
{
"id": "M_keuaCHIq",
"type": "manager",
"datatype": "Variable",
"value": {
"name": "Shuchi Manager",
"email": "catchshuchi+it@gmail.com",
"phone": "+91XXXXXXXXXX",
"preferedChannel": "eml"
}
}
]
}
...........
],
"nextKey": "2020020614163Kex42oMoh"
}

Workflow report

Base URL:

End Point:  {{baseURL}}/reports/workflows/data

HTTP Method: GET

Description: To get list of workflow based on parameter configured. By default return 1 year old data.

Request Params (Optional):

/reports/workflows/data?launchStartDate=2019-12-18&launchEndDate=2020-02-20&nextKey=2020020614163Kex42oMoh


Response:

{
  "count": 3,
  "workflow": "TestBambooWebhook",
  "id": "hx3cBcdvF",
  "items": [
    {
      "id": "202003180404Agh5PhEAV",
      "employee": "test launch",
      "mobile": "+9198XXXXXXXX",
      "email": "vneet+tanag@enboarder.com",
      "status": "in progress",
      "startDate": "2020-03-18T12:00:00",
      "launchDate": "2020-03-18T04:04:27",
      "mode": "live",
      "workflow": {
        "id": "GLQeB7C27",
        "name": "Asad - test Sutherland form signature stories"
      },
       "customFields": [
        {
          "id": "brand",
          "label": "Brand",
          "type": "category",
          "datatype": "text",
          "value": {
            "id": "val_brand_imaPy3ot0",
            "val": "David Jones"
          }
        },
        {
          "id": "location",
          "label": "Location",
          "type": "category",
          "datatype": "text",
          "value": {
            "id": "val_location_4yMrck7S-",
            "val": "Sydney"
          }
        },
        {
          "label": "Office Report Time",
          "type": "category",
          "datatype": "datetime",
          "value": {
            "id": "N18JrS6Y-",
            "val": "09:30"
          }
        },
        {
          "label": "Reporting Date",
          "type": "category",
          "datatype": "date",
          "value": {
            "id": "rJv7MrZu-",
            "val": "2020-03-18T12:00:00"
          }
        }
      ],
      "managers": [
        {
          "id": "M_keuaCHIq",
          "type": "manager",
          "datatype": "Variable",
          "value": {
            "name": "Shuchi Manager",
            "email": "catchshuchi+it@gmail.com",
            "phone": "+61XXXXXXXXX",
            "preferedChannel": "eml"
          }
        }
      ]
    }
  ],
  "nextKey": "2020020614163Kex42oMoh"
 }
  ....
],
  "nextKey": "2020020614163Kex42oMoh"
}

Workflow Details

Base URL:

End Point: {{baseURL}}/restapi/v1/details/{workflow launch ID}

The workflow launch ID is the external ID of the workflow. If launching workflows via a CSV upload or integration, this ID will be set by you. If launching workflow manually, Enboarder will assign an ID (starting with ENB-). If a ENB- ID is assigned, you will need to first call the Workflow Report API to retrieve this ID.

sequences=all parameter in URL will also fetch all sequences ( even future) associated with the workflow. Example: https://api.fra.e1.enboarder.com/restapi/v1/details/{workflow launch ID}?sequences=all

HTTP Method: GET

RestAPI output fields

RestAPI call return output is a JSON structure. Please see below for further details

JSON Output :

headers :

This tag contains information such as workflow name, employee name, employee mobile/email, status of workflow, key date of employee, launch date of workflow, mode of workflow (live or test) and the identifier in Enboarder. It also has an array of custom fields and managers (stakeholders). Custom fields contain name value and type of custom field (category if it is category) and manager info contains details of manager, such as label of the manager, email/ phone and preferred channel of notification.

details :

This tag contains sequence and module progress details. Sequence name, status, sequence belongs to (employee or manager), date when last action was taken. Module names, typse, actions, last date when last action was performed etc. is also detailed.

sequences:

This tag contains information about all sequences of workflow in time order from Pre Phase to Post Phase. This structure will only come if sequences=all parameter is specified. The list of sequences contains id, name of trigger Type of sequences along with parented if Sequence is chained. Over due days date is also available to compute the overdue date of the sequence.

Sample output:

{
"headers": {
"workflow": "Onboarding Workflow",
"employee": "John Doe",
"mob": "+1784xxxxxxx",
"eml": "john+test@example.com",
"status": "in progress",
"startdate": "2017-08-01",
"launchdate": "2017-08-24T01:34:17+0000",
"startphase": "90",
"mode": "Live",
"id": "ENB-201708240134xxxxxxxx",
"customfields": [
{
"name": "brand",
"value": "Example",
"type": "category"
},
{
"name": "Employee ID",
"value": "EMP-1001987"
}
],
"managers": [
{
"nm": "Mc Phi",
"eml": "mc+test@example.com",
"mgrlbl": "Direct Manager"
}
]
},
"details": [
{
"id": "seqid123",
"name": "Emp Seq",
"status": "complete",
"seqfor": "Employee",
"date": "2017-08-24T01:34:18+0000",
"modules": [
{
"name": "Notification",
"modtype": "notification",
"action": "sent",
"date": "2017-08-24T01:34:18+0000"
},
{
"id": "seqid456",
"name": "Emp Birthday",
"modtype": "forms",
"action": "completed",
"date": "2017-08-24T01:34:50+0000",
"formid": "201708240134xxxxxxx#Hy9xxxxx#Bkxxxxxx"
},
{
"name": "Thank you message",
"modtype": "finish",
"action": "viewed",
"date": "2017-08-24T01:35:04+0000"
}
]
},
{
"id": "seqid789",
"name": "Mgr Seq",
"status": "complete",
"seqfor": "Direct Manager",
"date": "2017-08-24T01:35:05+0000",
"modules": [
{
"name": "Notification",
"modtype": "notification",
"action": "sent",
"date": "2017-08-24T01:35:05+0000"
},
{
"name": "New hire birthday event",
"modtype": "event",
"action": "viewed",
"date": "2017-08-24T01:35:19+0000"
},
{
"modtype": "event",
"action": "viewed",
"date": "2017-08-24T01:35:29+0000"
},
{
"name": "New hire birthday event",
"modtype": "event",
"action": "invite sent",
"date": "2017-08-24T01:35:41+0000"
},
{
"name": "Thank you message",
"modtype": "finish",
"action": "viewed",
"date": "2017-08-24T01:35:44+0000"
}
]
},
{
"id": "seqid999",
"name": "Mgr Sequence2",
"status": "skipped",
"date": "2018-01-24T06:00:11+0000"
}
],
"sequences": [
{
"id": "seqid333",
"name": "Welcome Onboard",
"triggertype": "time",
"triggerdays": -10,
"seqfor": "Employee",
"overduedays": 2
},
{
"id": "seqid444",
"name": "Welcome New Hire",
"triggertype": "chained",
"parentid": "seqid123",
"triggerdays": -10,
"seqfor": "Direct Manager",
"overduedays": "3"
}
]
}

Tag

Description

Comments

1

workflow

Workflow name

2

startdate

Start date of new hire

3

launchdate

Workflow launch date

4

startphase

Length of start phase

can be used to evaluate different phases e.g. pre, post and start phase

5

mode

Test or live

Distinguish between live and test modes

6

details.name

Sequence name

7

details.seqfor

To whom sequence is for

Employee or Manager (label)

8

modules.modtype

Module type

e.g. forms, event, Notification etc.

9

modules.action

Current action on module

Possible values are 'viewed', 'sent', 'queued', 'forward: {{fwdto}}', 'resent: {{resendto}}','sms sent', 'sms skip', 'email sent', 'invite sent', 'in progress', 'completed', 'error', 'submitted', 'started', 'preparing', 'declined', 'voided', 'cancelled', 'deleted', 'stopped', 'redirected', 'ignore'

10

sequences.triggertype

Determines if it is a time based sequence of dependent on another seuquence

Possible values are time, chained. If time, sequence will be launched at a specified time from the start date. If chained, it will be launched once the parent sequence is complete.

11

sequences.trigger days

Number of days from start date when sequence will be launched

-ve value is for before and +ve value is for after start date. e.g. -5 means 5 days before start date

12

sequences.parentid

Id of the parent sequence in case of chained sequence

13

sequences.overduedays

Number of days when sequence will become overdue

Can be used to determine the overdue date

Like to keep track of your Enboarder form data submitted by users in your company’s analytics platform? With our latest API update you can do exactly this! Check out the Export Forms API article here:

Did this answer your question?