Skip to main content

The Fenergo Dashboard

The Landing Page for the FenX Application is the Dashboard view. This default view is a visualization of Team Tasks, Journey Time, Task Assignment. Behind the scenes of this visualization clients can use the APIs to retrieve the same data points which drive the displayed graphs. The APIs to also set task favorites can be called to set favorites programmatically.

Dashboard Command APIs

APIs Referenced
Dashboard Command API
Dashboard Query API

Command API to Set Favorite Tasks

To Set a task as a favorite, the TaskID, JourneyID and UserID muss be passed. There is a flag for setting favorite tasks called isFavorite which can be set to true or false. The other fields needed, are the Journey Instance Id, TaskID and UserId as populated below.

Setting a Favorite Task Request

HTTP POST REQUEST URL:
======================

{{baseURL}}/dashboardscommand/api/user-tasks

HTTP POST REQUEST BODY:
=======================

{
"data": {
"taskId": "e6e9d88a-9b63-468a-aec3-b7a11de27af8",
"journeyId": "7a0b9313-7bec-4206-be51-61a977e770e9",
"isFavourite": true,
"userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
}

Users can also set a number of tasks as favorites in bulk using the following API call.

Setting Favorite Tasks in bulk Request

HTTP POST REQUEST URL:
======================
{{baseURL}}/dashboardscommand/api/user-tasks/bulk

HTTP POST REQUEST BODY:
=======================
{
"data": {
"tasks": [
{
"taskId": "e6e9d88a-9b63-468a-aec3-b7a11de27af8",
"journeyId": "7a0b9313-7bec-4206-be51-61a977e770e9",
"isFavourite": true,
"userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
},
{... More Task Favorites ... }
]
}
}

API Query's to retrieve Dashboard Data

The landing page of the FenX Application brings the user to either the Management Dashboard or Tasks Dashboard. These Dashboards are a collection of graphed statistics and useful links to open Journeys and Tasks assigned to teams / users.

The Stats API which is used to drive the data points on the visual graphs on FenX and users might wish to replicate these graphs in another system or perform calculations against the results. There are 3 graphs displayed on the UI:

  • "New and Completed Journeys"
  • "Journey Completion Time"
  • "Team Task Assignment"

New and Completed Journeys & Time API

Both the New and Completed Journeys Graph and Average Journey Time which show statistics relating to the number of Journeys created against journeys completed and the average journey completion time are derived from the same API call. Specific TeamsIDs can be passed or a list of all teams can be selected in the User Interface and this is reflected in the API call with the array parameter "teamIds". When specifying the dashboard range, the valid parameters are ""Daily" "RollingSeven" "RollingThirty" In the User Interface each graph can be displayed using a different dashboardRange but the API call is the same.

  • Daily: displays the past 14 days with the count of journeys completed / started on that day.
  • RollingSeven: displays the past 30 days with each data point representing the average of the completed / started journeys for the preceding 7 days.
  • RollingThirty: displays the past 90 days with each data point representing the average of the completed / started journeys for the preceding 30 days.

To retrieve the data which drives the graph use the following POST API call and BODY. The Data Points are contained in the following arrays within the response body. These arrays will contain 14, 30 or 90 data points depending on the range selection.

  • JourneysStartedCountPoints
  • journeysCompletedPoints
  • journeyAverageTimePoints
Retrieve Graph Data
    HTTP POST URL:
==============
{{baseURL}}/dashboardsquery/api/journey-stats

HTTP POST BODY:
================

{
"data": {
"teamIds": [
"a7abd9d5-72b1-4b86-b69f-b4b39c9fd154"
],
"dashboardRange": "RollingSeven"
}
}

HTTP PARTIAL RESPONSE:
======================

{
"data": {
"journeysStartedCountPoints": [
{
"date": "2022-01-07T00:00:00+00:00",
"value": 1.4
},
{
"date": "2022-01-08T00:00:00Z",
"value": 2.4
} . . . { ... OTHER DATA POINTS ... }
],
"journeysCompletedPoints": [
{
"date": "2022-01-07T00:00:00+00:00",
"value": 0.3
},
{
"date": "2022-01-08T00:00:00Z",
"value": 0.6
} . . . { ... OTHER DATA POINTS ... }
],
"journeyAverageTimePoints": [
{
"date": "2022-01-07T00:00:00+00:00",
"value": 0.0
},
{
"date": "2022-01-08T00:00:00Z",
"value": 0.5
} . . . { ... OTHER DATA POINTS ... }
],
"journeysStartedDiff": -13,
"journeysCompletedDiff": -1,
"journeysStartedToday": 0,
"journeysCompletedToday": 0,
"journeyAverageTimeToday": 0,
"journeyAverageTimeDiff": -0.03210451424601338
},
"messages": null
}

Team Task Assignment Dashboard API

The Team Task Assignment visualized the number of tasks completed / not started for each team for all the open journeys that team is assigned to. It accepts a list of Team IDs as an argument and responds with the data used in the graph. This data is a summary by team name and the count for open and completed tasks.

Retrieve Graph Data

HTTP POST URL:
==============
{{baseURL}}/dashboardsquery/api/team-tasks

HTTP POST BODY:
===============

{
"data": [
"6893f007-4ab2-4ef2-857a-f61b8410bfdd",
"4f8262a0-6e46-479c-bb95-60d6dccd704d",
"07d7eece-32bc-40e2-9060-a88ae08685e3",
"328cd0a7-af88-47a4-adae-bfa6ce350706",
.....
.....
..... {Pass all the Team Ids where summary is required}
]
}

HTTP PARTIAL RESPONSE:
=====================

{
"data": [
{
"teamName": "Status - Rejected - Risk Appetite",
"notStartedCount": 0,
"startedCount": 0
},
{
"teamName": "External Data",
"notStartedCount": 1,
"startedCount": 0
},
{
"teamName": "KYC Advisory",
"notStartedCount": 177,
"startedCount": 7
},
{
..... Other Teams ......
..... Other not Started Count ....
..... Other Started Count .....
}
],
"messages": null
}

List of Journeys API (Preview and Full)

The list of Journeys for a selected set of teams is displayed in the UI and can be accessed by the API. There are two variants with the same parameters and the difference is just how much data is returned.

Retrieve Graph Data

HTTP POST URL (PREVIEW - Smaller Data Set):
==============
{{baseURL}}/dashboardsquery/api/journey-dashboard/preview

HTTP POST URL (ALL - Full Data Set):
==============
{{baseURL}}/dashboardsquery/api/journey-dashboard/journeys

HTTP POST BODY:
===============

{
"data": [
"6893f007-4ab2-4ef2-857a-f61b8410bfdd",
"4f8262a0-6e46-479c-bb95-60d6dccd704d",
"07d7eece-32bc-40e2-9060-a88ae08685e3",
.... { OTHER TEAM IDs }....
]
}

HTTP PARTIAL RESPONSE:
======================

{
"data": {
"journeys": [
{
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"journeyName": "Ongoing Screening - Company",
"entityName": "Google",
"entityId": "676c1e0b-c040-49bb-aa7a-693b5e49ea72",
"progress": 0,
"tasks": [],
"daysOpen": "< 1 day",
"teams": [
"b11ba1f6-7987-4e95-a00a-db78afce1641"
],
"started": "2022-02-05T03:02:02.43+00:00",
"priority": null,
"entityGeographicAccessLayers": [
"Global"
],
"entityBusinessAccessLayers": [
"Enterprise"
],
"journeyGeographicAccessLayers": [
"Global"
],
"journeyBusinessAccessLayers": [
"Enterprise"
]
},
....
....
....
{ Other Journey Data }

List of Unassigned Tasks

This API allows a list of all the tasks which are part of the Journeys assigned to the selected teams but the tasks have not yet been assigned to a user. This list of tasks contain all the details related to the task. These can then be assigned or reported on.

Retrieve Graph Data

HTTP POST URL (PREVIEW - Smaller Data Set):
==============
{{baseURL}}/dashboardsquery/api/unassigned-task/tasks

HTTP POST BODY:
===============

{
"data": [
"6893f007-4ab2-4ef2-857a-f61b8410bfdd",
"4f8262a0-6e46-479c-bb95-60d6dccd704d",
"07d7eece-32bc-40e2-9060-a88ae08685e3",
.... { OTHER TEAM IDs }....
]
}

HTTP PARTIAL RESPONSE:
======================

{
"data": [
{
"taskId": "b93b9368-4344-47a1-8644-2173c41c5f7d",
"taskName": "Resolve Screening Matches",
"taskType": "ScreeningMatchResolutionTaskOgs",
"taskStatus": "In Progress",
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"journeyName": "Ongoing Screening - Company",
"clientId": "676c1e0b-c040-49bb-aa7a-693b5e49ea72",
"clientName": "Google",
"assignedTeamId": "b11ba1f6-7987-4e95-a00a-db78afce1641",
"assignedTeamName": "Reassessment",
"started": "2022-02-05T03:02:05.86+00:00",
"entityGeographicAccessLayers": null,
"entityBusinessAccessLayers": null,
"journeyGeographicAccessLayers": null,
"journeyBusinessAccessLayers": null
},
...
...
...
... {Other Tasks} ...

Assign an Unassigned Task

In the UI the unassigned tasks are listed with a shortcut "Icon" that allows the task to be assigned to a team and user. The API below demonstrates how to

Retrieve Graph Data
    HTTP PUT URL SCHEMA:
====================
{{baseURL}}/journeycommand/api/journey-instance/{JourneyInstanceID}}/task/{taskID}/reassign

HTTP PUT BODY:
==============
{
"data": {
"teamId": "5d10f72f-821e-48c4-9d56-97b5900d1540",
"ownerId": "9e70d877-f8fc-47d2-b7c2-9db999a2b1a3",
"comment": "test"
}
}

HTTP RESPONSE:
==============
HTTP 200 OK

User Journey Dashboard API

At a User level, the Journeys and Tasks assigned to the a specific user can be retrieved. Also pinned tasks that a user has marked are displayed and new tasks can be pinned / un-pinned.

Retrieve Graph Data

HTTP GET REQUEST FORMAT:
=========================
{{baseURL}}/dashboardsquery/api/user-journey-dashboard/{userId}

HTTP GET REQUEST:
=================
{{baseURL}}/dashboardsquery/api/user-journey-dashboard/9e70d877-f8fc-47d2-b7c2-9db999a2b1a3

HTTP GET RESPONSE:
==================

{
"data": {
"journeys": [
{
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"journeyName": "Ongoing Screening - Company",
"entityName": "Google",
"entityId": "676c1e0b-c040-49bb-aa7a-693b5e49ea72",
"progress": 0,
"tasks": [
{
"taskId": "b93b9368-4344-47a1-8644-2173c41c5f7d",
"taskName": "Resolve Screening Matches",
"assignedTeamId": "5d10f72f-821e-48c4-9d56-97b5900d1540",
"assignedTeam": "Ebury Access",
"taskStatus": "In Progress",
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"daysOpen": "< 1 day",
"taskType": "ScreeningMatchResolutionTaskOgs",
"assignedTo": "george.mcgrane@fenergo.com",
"assignedToId": "9e70d877-f8fc-47d2-b7c2-9db999a2b1a3",
"isFavourite": true
},
{ . . . . OTHER TASKS . . . }
],
"daysOpen": "< 1 day",
"yourNextTask": {
"taskId": "b93b9368-4344-47a1-8644-2173c41c5f7d",
"taskName": "Resolve Screening Matches",
"assignedTeamId": "5d10f72f-821e-48c4-9d56-97b5900d1540",
"assignedTeam": "Ebury Access",
"taskStatus": "In Progress",
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"daysOpen": "< 1 day",
"taskType": "ScreeningMatchResolutionTaskOgs",
"assignedTo": "george.mcgrane@fenergo.com",
"assignedToId": "9e70d877-f8fc-47d2-b7c2-9db999a2b1a3",
"isFavourite": false
}
},
{ . . . . OTHER JOUNEYS . . . }
]
},
"messages": null
}

Task Queue Dashboard API

At a User level, the Journeys and Tasks assigned to the a specific user can be retrieved. Also pinned tasks that a user has marked are displayed and new tasks can be pinned / un-pinned.

Retrieve Graph Data

HTTP GET REQUEST FORMAT:
=========================
{{baseURL}}/dashboardsquery/api/task-queue/{userId}

HTTP GET REQUEST:
=================
{{baseURL}}/dashboardsquery/api/task-queue/9e70d877-f8fc-47d2-b7c2-9db999a2b1a3

HTTP GET RESPONSE:
==================
{
"data": [
{
"clientName": "Google",
"taskId": "b93b9368-4344-47a1-8644-2173c41c5f7d",
"taskName": "Resolve Screening Matches",
"taskStatus": "In Progress",
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"assignedTeamId": "5d10f72f-821e-48c4-9d56-97b5900d1540",
"daysOpen": "< 1 day",
"entityId": "676c1e0b-c040-49bb-aa7a-693b5e49ea72",
"isFavourite": true,
"startedDate": "2022-02-05T03:02:05.86+00:00"
}
],
"messages": null
}

Task Queue Favorites Dashboard API

Favorites are tasks which are pinned and can be toggled on and off for quick access. The following API details will retrieve the pinned (favourite tasks)

Retrieve Graph Data
    HTTP GET REQUEST FORMAT:
=========================
{{baseURL}}/dashboardsquery/api/task-queue/favourites/{userId}

HTTP GET REQUEST:
=================
{{baseURL}}/dashboardsquery/api/task-queue/favourites/9e70d877-f8fc-47d2-b7c2-9db999a2b1a3

HTTP GET RESPONSE:
==================
{
"data": [
{
"clientName": "Google",
"taskId": "b93b9368-4344-47a1-8644-2173c41c5f7d",
"taskName": "Resolve Screening Matches",
"taskStatus": "In Progress",
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"assignedTeamId": "5d10f72f-821e-48c4-9d56-97b5900d1540",
"daysOpen": "< 1 day",
"entityId": "676c1e0b-c040-49bb-aa7a-693b5e49ea72",
"isFavourite": true,
"startedDate": "2022-02-05T03:02:05.86+00:00"
}
],
"messages": null
}

Toggling a task as a Favourite

Any open task can be pinned as a favorite for quick access. Via the API a task could also be pinned on behalf of a user to ensure it shows up on their Dashboard.

Retrieve Graph Data

HTTP POST REQUEST:
=========================
{{baseURL}}/dashboardscommand/api/user-tasks

HTTP POST BODY:
===============
{
"data": {
"isFavourite": true,
"journeyId": "4ef5a666-5211-426c-a0f6-e83c5f7f7b5f",
"taskId": "b93b9368-4344-47a1-8644-2173c41c5f7d",
"userId": "9e70d877-f8fc-47d2-b7c2-9db999a2b1a3"
}
}

HTTP GET RESPONSE:
=================
HTTP 202 ACCEPTED