# Features in BzCtrl.

<div>These features can be used across multiple Pages and Workspaces to simplify daily operations and improve efficiency.

<div>Features such as<span> </span>**ApiForm**<span> </span>and<span> </span>**SnapForm**<span> </span>also enable integration with external users and systems, allowing data to be exchanged and processes to connect seamlessly across platforms.

<span>Additional information and feature updates can also be found on the official website:<span> </span></span><span>[BzCtrl.](https://www.bzctrl.com/?utm_source=chatgpt.com)</span>

</div></div>

# External System Integration - ApiForms

<div id="bkmrk-bzctrl.-provides-the">BzCtrl. provides the ability to call predefined Forms through API communication using the **ApiForms** feature. This allows external systems to create and link Form instances directly from within their own operational processes.

The main value of ApiForms is that a user can launch a specific Form directly from the source system, while the created Form instance remains permanently accessible through a stored URL within that source system.

####   


### How ApiForms Work

Each ApiForm provides a unique API endpoint that allows an external system to create a new Form instance in BzCtrl.

The request includes:

- Predefined Form reference (via API Endpoint)
- Tags and identifiers (for example an Order Number, Shipment Number, or Case ID).

<div>  
</div>Once the Form instance is created, BzCtrl. returns a response containing the direct URL to the Form instance. This URL can then be stored in the source system, allowing users to always reopen the corresponding Form directly from their operational process.

####   


### User actions

<div>**Step 1** - From the Forms Page the User can create an ApiForm via the Action Button for a specific Form;</div><div>  
</div><div>![editor_17_5_00acf516-37ef-4f65-98ff-3e1591224e49_rte_image_358.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_00acf516-37ef-4f65-98ff-3e1591224e49_rte_image_358.png)</div><div></div><div>  
</div><div>**Step 2** - Select the Workspace where the Form Instances should be created and stored;</div><div>   
</div><div>   
</div><div>![editor_17_5_29047aa9-ed3e-416b-8369-964c69a784a2_rte_image_362.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_29047aa9-ed3e-416b-8369-964c69a784a2_rte_image_362.png)</div><div></div><div>  
**Step 3** - From the Configure page the Form is now available as ApiForm. Please make sure the correct Workspace is selected (right top). From the ApiForms Table select the ApiForm Key Button to get the details to share with your developers.</div><div>  
</div><div>![editor_17_5_3a0f34f8-f304-4354-a93d-a666fbac5e6b_rte_image_368.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_3a0f34f8-f304-4354-a93d-a666fbac5e6b_rte_image_368.png)</div><div></div><div>  
</div>### Input to Developers External system

<div>**Step 1 - Authentication**

Before an ApiForm can be called, the external application must authenticate with BzCtrl. Authentication is performed by sending a **POST** request to the appropriate authentication endpoint using credentials provided for API communication.

**Endpoints**

**Acceptance Environment (ACC)**  
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span>https://acc.bzctrl.com/bzctrl-core-api/oauth/token</span></span></span>

**Production Environment (PROD)**  
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span>https://bzctrl.com/bzctrl-core-api/oauth/token</span></span></span>

**Request Method**

<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span>POST</span></span></span>

**Request Body (x-www-form-urlencoded)**

<div>```
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>grant_type=password</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>username=example@example.com</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>password=Ex@mpl3!</span></span></span></span>
```

</div><div style="margin-left: 20px;">  
</div>**Sample Response**

<div>```
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>{</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>  "access_token": </span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>,</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>  "refresh_token": </span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>,</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>  "token_type": </span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span class="ͼk">"Bearer"</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>,</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>  "expires_in": </span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span class="ͼj">3600</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>,</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>  "scope": </span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span class="ͼk">"*"</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>,</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>  "jti": </span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><br></br></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span>}</span></span></span></span>
```

</div><div style="margin-left: 20px;">  
</div>**Result**

Upon successful authentication, BzCtrl. returns an **access token** that must be included in subsequent API requests. The token serves as proof of authentication and authorizes communication with the BzCtrl. API. The token remains valid for the period specified in the <span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span>expires\_in</span></span></span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> </span>field.

</div><div><div>  
</div><div>**Step 2 - Api Form Key**</div></div><div>  
</div><div>Here you see the API Endpoint url to share with your developers, which use will result in the creation of a Form Instance of the respective Form on your selected Workspace. In the Body of the message Tags can be included, which is usually used for adding Order ID's to be recorded in the Form Instance.</div><div>   
</div><div style="cursor: auto;">![editor_17_5_e0e245de-7fca-47e8-8aaf-f2ddf6eb5184_rte_image_81.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_e0e245de-7fca-47e8-8aaf-f2ddf6eb5184_rte_image_81.png)</div><div style="text-align: inherit;">   
<span style="background-color: unset; font-family: Roboto, "Segoe UI", GeezaPro, "DejaVu Serif", "sans-serif", -apple-system, BlinkMacSystemFont; font-size: 1em; letter-spacing: 0.0178571em; text-align: inherit;">After creation the Response message includes a Tasklink that can be stored to allow the user access to the Form Instance from the External system at any stage. </span></div><div>  
</div><div>   
  
</div><div>  
</div></div>

# External System Integration - Incidents & Tasks

<div id="bkmrk-external-system-inte"><span>BzCtrl. provides a feature that allows external systems to create<span> </span></span>**Incidents**<span><span> </span>and<span> </span></span>**Tasks**<span><span> </span>directly through REST API communication. This enables operational systems to register issues or actions directly within their own workflows while ensuring follow-up and tracking take place in BzCtrl.</span>

The main value of this feature is that it allows Incidents and Tasks to be created directly from specific screens or processes within an external operational system, without requiring users to manually enter data into BzCtrl.

<div>####   


#### Integration Flow

The integration process consists of the following steps:

The request contains the information required to create the Incident (or Task) in BzCtrl.

</div><div><div>  
</div>**Step 1 - Authentication**

Before an ApiForm can be called, the external application must authenticate with BzCtrl. Authentication is performed by sending a<span> </span>**POST**<span> </span>request to the appropriate authentication endpoint using credentials provided for API communication.

**Endpoints**

**Acceptance Environment (ACC)**  
<span><span><span>https://acc.bzctrl.com/bzctrl-core-api/oauth/token</span></span></span>

**Production Environment (PROD)**  
<span><span><span>https://bzctrl.com/bzctrl-core-api/oauth/token</span></span></span>

**Request Method**

<span><span><span>POST</span></span></span>

**Request Body (x-www-form-urlencoded)**

<div>```
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>grant_type=password</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>username=example@example.com</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>password=Ex@mpl3!</span></span></span></span></span></span>
```

</div><div style="margin-left: 20px;">  
</div>**Sample Response**

<div>```
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>{</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>  "access_token": </span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>  "refresh_token": </span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>  "token_type": </span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span class="ͼk">"Bearer"</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>  "expires_in": </span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span class="ͼj">3600</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>  "scope": </span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span class="ͼk">"*"</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>  "jti": </span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span></span><span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span><span><span><span>}</span></span></span></span></span></span>
```

</div><div style="margin-left: 20px;">  
</div>**Result**

Upon successful authentication, BzCtrl. returns an<span> </span>**access token**<span> </span>that must be included in subsequent API requests. The token serves as proof of authentication and authorizes communication with the BzCtrl. API. The token remains valid for the period specified in the<span> </span><span><span><span>expires\_in</span></span></span><span><span> </span></span>field.

<div>  
</div></div>**Step 2 - Create Incident (or Task)**

<div style="text-align: inherit;"><span style="background-color: unset; font-size: 1em; text-align: inherit; font-family: Roboto, "Segoe UI", GeezaPro, "DejaVu Serif", "sans-serif", -apple-system, BlinkMacSystemFont; letter-spacing: 0.0178571em;">After receiving the access token from the OAuth API, use the Add Task API to create a new Task or Incident.</span></div><div>  
</div><div style="margin-left: 20px;">**EndPoint**</div><div><div><span style="background-color: rgb(242, 242, 242);">  
</span></div><span style="background-color: rgb(242, 242, 242);">ACC: </span><span style="background-color: rgb(242, 242, 242);">[https://acc.bzctrl.com/bzctrl-core-api/api/v1/task/add-task ](https://acc.bzctrl.com/bzctrl-core-api/api/v1/task/add-task "https://acc.bzctrl.com/bzctrl-core-api/api/v1/task/add-task")</span>

<span style="background-color: rgb(242, 242, 242);">PROD: </span><span style="background-color: rgb(242, 242, 242);">[https://www.bzctrl.com/bzctrl-core-api/api/v1/task/add-task](https://www.bzctrl.com/bzctrl-core-api/api/v1/task/add-task "https://www.bzctrl.com/bzctrl-core-api/api/v1/task/add-task")</span>

<div>  
</div></div><p class="callout info callout info">*****Note: The access token received from the OAuth Token API must be included in the Authorization header using the Bearer scheme.*****</p>

<span style="font-size: 10pt;"><span>Request Method<span style="background-color: transparent;">: </span></span></span><span style="background-color: rgb(242, 242, 242); font-size: 10pt; font-weight: 400; text-align: inherit; font-family: Roboto, "Segoe UI", GeezaPro, "DejaVu Serif", "sans-serif", -apple-system, BlinkMacSystemFont; letter-spacing: 0.0178571em;"><span style="color: rgb(68, 114, 196); text-decoration: inherit; font-size: 10pt;">POST</span></span>

 <span style="font-size: 10pt;"><span>Required Headers</span></span>

 <span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">Content-Type: application/json</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> Authorization: Bearer {access\_token}</span></span>

 <span style="font-size: 10pt;"><span>Sample Request Body</span></span>

 <span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">{</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "todoType":"INCIDENT",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "domainWorkSpace":"EXA-CON-BUS-WOR",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "title":"</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span>Potential Customs claim</span></span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "description":"</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span>Operation started without proper approvals</span></span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "financialImpact":"123577",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "impact":"HIGH",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "likelihood":"MEDIUM",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "status":"IN PROGRESS",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "priority":"HIGH",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "assignee":"Example@example.com",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "reporter":"Example@example.com",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "category":\["Customs"\],</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "subCategory":\["IT"\],</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "lrn":"725462",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "orderID":"ORDER 777",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "reminderDate":"2024-09-27"</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> }</span></span>

 <span style="font-size: 10pt;"><span>Sample Response</span></span>

 <span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">{</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "title":"Potential Customs claim",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "taskType":"INCIDENT",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "description":"Operation started without proper approvals",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "taskLink":"https://www.bzctrl.com/app/#/todo/</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"><span>EXA-CON-BUS-WOR</span></span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">-03",</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> "tags":\["ORDER 777"\]</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;">  
</span><span style="color: rgb(68, 114, 196); text-decoration: inherit;"> }</span></span>

<div style="margin-left: 20px;">**This URL can be stored in the external system for direct access and traceability. Or you can open this URL in the browser by the JavaScript function(window.open("URL") ).** </div><div style="margin-left: 20px;"><span>From a UI/UX perspective the following should be considered (</span>* Mandatory, *Italic -* User input, CAPITOL - System generated Values)</div><div style="margin-left: 20px;">  
</div><div style="margin-left: 20px;"><table border="0" cellpadding="0" cellspacing="0" class="e-rte-table-border e-rte-table" width="1137"><tbody><tr height="21"><td class="" height="21" width="125">**Todo Type**</td><td class="" width="124">**Fields**</td><td class="" width="235">**Input**</td><td class="" width="653">**Comments**</td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">todoType\*</td><td class="">INCIDENT</td><td class="" width="653"><span>**Customer**<span> </span>-<span> </span></span><span>option to change to Task</span><span><span> </span>(or in case only used for Incidents default value)</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">domain\*</td><td class=""><span>EXA-CON-BUS-WOR</span></td><td class="" width="653">Default value to include by<span> </span><span>**Customer**,</span><span><span> </span>relates to the Domain</span></td></tr><tr height="43"><td class="" height="43">incident, task</td><td class="">workspace\*</td><td class=""><span>WOR</span></td><td class="" width="653">Default value to include by<span> </span>**Customer**, relates to the Workspace under the Domain</td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">title\*</td><td class="">*Free text field*</td><td class="" width="653"><span>**Customer**,</span><span><span> </span>allow user to provide Title/Subject</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">description\*</td><td class="">*Free text field*</td><td class="" width="653"><span>**Customer**,</span><span><span> </span>allow user to provide Description</span></td></tr><tr height="21"><td class="" height="21">task</td><td class="">result</td><td class="">*Free text field*</td><td class="" width="653"><span>**Customer**,</span><span><span> </span>allow user to provide Results</span><span><span> <span> </span></span>(optional)</span></td></tr><tr height="43"><td class="" height="43">incident</td><td class="">financialImpact</td><td class="">*Numbers field*</td><td class="" width="653"><span>**Customer**<span> </span></span><span>- For User<span> <span> </span></span>it should be clear this is a EUR amount. Only Number is provided.<span> </span></span><span>BzCtrl</span><span>. - This should be included in the Field "Potential financial impact of the incident" set as EUR.</span></td></tr><tr height="21"><td class="" height="21">incident</td><td class="">impact</td><td class="">*High, Medium, Low*</td><td class="" width="653"><span>**Customer**,</span><span><span> </span>allow user to select out of these three options (optional)</span></td></tr><tr height="21"><td class="" height="21">incident</td><td class="">likelihood</td><td class="">*High, Medium, Low*</td><td class="" width="653"><span>**Customer**,</span><span><span> </span>allow user to select out of these three options (optional)</span></td></tr><tr height="43"><td class="" height="43">incident, task</td><td class="">status\*</td><td class="">*In Progress*</td><td class="" width="653">Options BzCtrl. are To do, In Progress, Done and Expired.<span> </span>**Customer**<span><span> </span>- default when sending on In Progress, with option to change by User to Done.<span> </span></span><span>BzCrtrl</span><span>. - If status - Done, set due date to date transaction.</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">priority</td><td class="">*High, Medium, Low*</td><td class="" width="653"><span>**Customer**,</span><span><span> </span>allow user to select out of these three options (optional)</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">assignee\*</td><td class="">[User@example.com](mailto:User@impala.com)</td><td class="" width="653"><span>**Customer**,</span><span><span> </span>Same as Reporter. E-mail address of the User.</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">reporter\*</td><td class="">[User@example.com](mailto:User@impala.com)</td><td class="" width="653"><span>**Customer**,<span> </span></span><span>E-mail address of the User.</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">category</td><td class=""> </td><td class="" width="653">n/a</td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">orderID\*</td><td class="">ServiceOrder Number</td><td class="" width="653"><span>**Customer**<span> </span></span><span>-<span> </span></span><span>BzCrtrl.</span><span><span> </span>- Set as Tag</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">LRN</td><td class="">LRN</td><td class="" width="653">**Customer**<span><span> </span>-<span> </span></span><span>BzCrtrl.</span><span><span> </span>- Set as Tag (if available handy reference)</span></td></tr><tr height="21"><td class="" height="21">incident, task</td><td class="">reminderDate</td><td class="">Calendar selection</td><td class="" width="653">n/a</td></tr></tbody></table>

</div></div><div id="bkmrk--1">  
</div>

# ApiForm instruction - VTTI specific

<div id="bkmrk-bzctrl.-provides-the">BzCtrl. provides the ability to call predefined Forms through API communication using the<span> </span>**ApiForms**<span> </span>feature. This allows external systems to create and link Form instances directly from within their own operational processes.

The main value of ApiForms is that a user can launch a specific Form directly from the source system, while the created Form instance remains permanently accessible through a stored URL within that source system.

####   


### How ApiForms Work

Each ApiForm provides a unique API endpoint that allows an external system to create a new Form instance in BzCtrl.

The request includes:

- Predefined Form reference (via API Endpoint)
- Tags and identifiers (for example an Order Number, Shipment Number, or Case ID).

<div>  
</div>Once the Form instance is created, BzCtrl. returns a response containing the direct URL to the Form instance. This URL can then be stored in the source system, allowing users to always reopen the corresponding Form directly from their operational process.

####   


### User actions

<div>**Step 1**<span> </span>- From the Forms Page the User can create an ApiForm via the Action Button for a specific Form;</div><div>  
</div><div>![editor_17_5_00acf516-37ef-4f65-98ff-3e1591224e49_rte_image_358.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_00acf516-37ef-4f65-98ff-3e1591224e49_rte_image_358.png)</div><div>  
</div><div>**Step 2**<span> </span>- Select the Workspace where the Form Instances should be created and stored;</div><div>  
</div><div>  
</div><div>![editor_17_5_29047aa9-ed3e-416b-8369-964c69a784a2_rte_image_362.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_29047aa9-ed3e-416b-8369-964c69a784a2_rte_image_362.png)</div><div>  
**Step 3**<span> </span>- From the Configure page the Form is now available as ApiForm. Please make sure the correct Workspace is selected (right top). From the ApiForms Table select the ApiForm Key Button to get the details to share with your developers.</div><div>  
</div><div>![editor_17_5_3a0f34f8-f304-4354-a93d-a666fbac5e6b_rte_image_368.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_3a0f34f8-f304-4354-a93d-a666fbac5e6b_rte_image_368.png)</div><div>  
</div>### Input to Developers External system

<div>**Step 1 - Authentication**

Before an ApiForm can be called, the external application must authenticate with BzCtrl. Authentication is performed by sending a<span> </span>**POST**<span> </span>request to the appropriate authentication endpoint using credentials provided for API communication.

**Endpoints**

**Acceptance Environment (ACC)**  
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span>https://acc.bzctrl.com/bzctrl-core-api/oauth/token</span></span></span></span></span>

**Production Environment (PROD)**  
<span style="background-color: rgb(242, 242, 242);"><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span>https://bzctrl.com/bzctrl-core-api/oauth/token</span></span></span></span></span>

**Request Method**

<span><span><span>POST</span></span></span>

**Request Body (x-www-form-urlencoded)**

<div>```
<span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>grant_type=password</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>username=<span>cms@api.com</span></span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>password=Nologicincustoms#24</span></span></span></span></span>
```

</div><div>  
</div>**Sample Response**

<div>```
<span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>{</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>  "access_token": </span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>  "refresh_token": </span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>  "token_type": </span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span class="ͼk">"Bearer"</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>  "expires_in": </span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span class="ͼj">3600</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>  "scope": </span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span class="ͼk">"*"</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>,</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>  "jti": </span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span class="ͼk">"xxxxxxxxxx"</span></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><br></br></span></span></span></span><span style="color: rgb(47, 84, 150); text-decoration: inherit;"><span><span><span><span>}</span></span></span></span></span>
```

</div><div>  
</div>**Result**

Upon successful authentication, BzCtrl. returns an<span> </span>**access token**<span> </span>that must be included in subsequent API requests. The token serves as proof of authentication and authorizes communication with the BzCtrl. API. The token remains valid for the period specified in the<span> </span><span><span><span>expires\_in</span></span></span><span><span> </span></span>field.

</div><div><div>  
</div><div>**Step 2<span> </span>- Api Form Key**</div></div><div>  
</div><div>Here you see the API Endpoint url to share with your developers, which use will result in the creation of a Form Instance of the respective Form on your selected Workspace. In the Body of the message Tags can be included, which is usually used for adding Order ID's to be recorded in the Form Instance.</div><div>  
</div><div style="margin-left: 20px;">  
</div><div style="margin-left: 20px;">**ApiForm Key - Acceptance Environment (ACC)**  
</div><div style="margin-left: 20px;"><span style="background-color: rgb(242, 242, 242);">[<span style="color: rgb(47, 84, 150); text-decoration: inherit;">https://acc.bzctrl.com/bzctrl-core-api/api/v1/task/add-exposed-task/eyJwcm9qZWN0SWQiOjUwMywiY29tcGFueUlkIjozMzEsImNvbnRyb2xJZCI6MTQxNSwiZW5jb2RlVXJsIjoiZDMzOGExNmYtZGIzMS00OTQzLTliMzUtMzQ4YmYzMzc1ZTE1IiwiY3JlYXRvcklkIjo2NjMsIndvcmtTcGFjZU5hbWUiOiJDdXN0b21zIiwicmVwb3J0ZXJVc2VySWQiOjY2MywicmVwb3J0ZXJVc2VyTmFtZSI6IlJlbXkgR2VlcnRzIn0=</span>](https://acc.bzctrl.com/bzctrl-core-api/api/v1/task/add-exposed-task/eyJwcm9qZWN0SWQiOjUwMywiY29tcGFueUlkIjozMzEsImNvbnRyb2xJZCI6MTQxNSwiZW5jb2RlVXJsIjoiZDMzOGExNmYtZGIzMS00OTQzLTliMzUtMzQ4YmYzMzc1ZTE1IiwiY3JlYXRvcklkIjo2NjMsIndvcmtTcGFjZU5hbWUiOiJDdXN0b21zIiwicmVwb3J0ZXJVc2VySWQiOjY2MywicmVwb3J0ZXJVc2VyTmFtZSI6IlJlbXkgR2VlcnRzIn0= "https://acc.bzctrl.com/bzctrl-core-api/api/v1/task/add-exposed-task/eyJwcm9qZWN0SWQiOjUwMywiY29tcGFueUlkIjozMzEsImNvbnRyb2xJZCI6MTQxNSwiZW5jb2RlVXJsIjoiZDMzOGExNmYtZGIzMS00OTQzLTliMzUtMzQ4YmYzMzc1ZTE1IiwiY3JlYXRvcklkIjo2NjMsIndvcmtTcGFjZU5hbWUiOiJDdXN0b21zIiwicmVwb3J0ZXJVc2VySWQiOjY2MywicmVwb3J0ZXJVc2VyTmFtZSI6IlJlbXkgR2VlcnRzIn0=")</span></div><div style="margin-left: 20px;"><span style="background-color: rgb(242, 242, 242);">  
 </span>****ApiForm Key -<span> </span>**Production Environment (PROD)**  
</div><div style="margin-left: 20px;"><span style="background-color: rgb(242, 242, 242);">[<span style="color: rgb(47, 84, 150); text-decoration: inherit;">https://www.bzctrl.com/bzctrl-core-api/api/v1/task/add-exposed-task/eyJwcm9qZWN0SWQiOjI4MywiY29tcGFueUlkIjoxOTksImNvbnRyb2xJZCI6MTQ1NSwiZW5jb2RlVXJsIjoiNWJhM2QxMGYtNTgzMy00N2VjLWE5NzktMDk5NTM5MTNjNTM3IiwiY3JlYXRvcklkIjoxMywid29ya1NwYWNlTmFtZSI6IkN1c3RvbXMiLCJyZXBvcnRlclVzZXJJZCI6MTMsInJlcG9ydGVyVXNlck5hbWUiOiJSZW15IEdlZXJ0cyJ9</span> ](https://www.bzctrl.com/bzctrl-core-api/api/v1/task/add-exposed-task/eyJwcm9qZWN0SWQiOjI4MywiY29tcGFueUlkIjoxOTksImNvbnRyb2xJZCI6MTQ1NSwiZW5jb2RlVXJsIjoiNWJhM2QxMGYtNTgzMy00N2VjLWE5NzktMDk5NTM5MTNjNTM3IiwiY3JlYXRvcklkIjoxMywid29ya1NwYWNlTmFtZSI6IkN1c3RvbXMiLCJyZXBvcnRlclVzZXJJZCI6MTMsInJlcG9ydGVyVXNlck5hbWUiOiJSZW15IEdlZXJ0cyJ9 "https://www.bzctrl.com/bzctrl-core-api/api/v1/task/add-exposed-task/eyJwcm9qZWN0SWQiOjI4MywiY29tcGFueUlkIjoxOTksImNvbnRyb2xJZCI6MTQ1NSwiZW5jb2RlVXJsIjoiNWJhM2QxMGYtNTgzMy00N2VjLWE5NzktMDk5NTM5MTNjNTM3IiwiY3JlYXRvcklkIjoxMywid29ya1NwYWNlTmFtZSI6IkN1c3RvbXMiLCJyZXBvcnRlclVzZXJJZCI6MTMsInJlcG9ydGVyVXNlck5hbWUiOiJSZW15IEdlZXJ0cyJ9")</span><span style="background-color: rgb(242, 242, 242);"> </span>  
</div><div>  
</div><div>  
</div><div>![editor_17_5_e0e245de-7fca-47e8-8aaf-f2ddf6eb5184_rte_image_81.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_e0e245de-7fca-47e8-8aaf-f2ddf6eb5184_rte_image_81.png)</div><div>  
<span>After creation the Response message includes a Tasklink that can be stored to allow the user access to the Form Instance from the External system at any stage. </span></div><div>  
</div><div>  
  
</div><div>  
</div></div>