Skip to main content

Issue Report

The Issue Reporting process ensures that reported issues are assigned, reviewed, and resolved through a structured workflow, with final confirmation before closure.

Step 1: Status updated: Draft

General

Name: Status updated: Draft

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Assigning responsible & defining issue",
payload: [
{ role: "others", status: "draft" }
]
});

Step 2: Send notification to Business user

General

Name: Send notification to Business user

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Assigning responsible & defining issue",
is_completed: false,
payload: {
to: [execution.getVariable("invoker_id")],
message: "Dear user, please designate a responsible person and provide a comprehensive description of the issue. Before proceeding, ensure that all necessary information is accurate and complete. Click ‘Report issue’ to confirm the details or ‘Cancel’ if the request is no longer needed.",
need: {
mass_approve: false,
response: true,
assign: true
},
ui: {
caption: "",
assign: "Dear user, please assign a responsible person",
buttons: {
approve: "Report issue",
reject: "Cancel"
}
}
}
});

Step 3: Ask Invoker

  • If Report issue: proceed to Step 4.
  • If Cancel: proceed to Step 3.1.

Step 3.1: Status updated: Cancelled

General

Name: Status updated: Cancelled

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Issue report сancelled",
payload: [
{ role: "others", status: "cancelled" }
]
});

Step 3.2: Send notification to Business user

General

Name: Send notification to Business user

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Issue report cancelled",
is_completed: true,
payload: {
to: [execution.getVariable("invoker_id")],
message: "Dear user, your issue report has been successfully cancelled.",
need: {
mass_approve: false,
response: false,
assign: false
},
ui: {
caption: "",
assign: "",
buttons: {}
}
}
});

End event


Step 4: Validation

General

Name: Validation

Script

  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.parse(execution.getVariable("users"))["assignee"] !== undefined
  • Result variable: check

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Flow conditions

  • If Validation successful: proceed to Step 5.
  • If Validation failed: proceed to Step 4.1.

Step 4.1: Send Notification to Business user

General

Name: Send notification to Business user

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Assignment validation failed",
is_completed: false,
payload: {
to: [execution.getVariable("invoker_id")],
message: "Dear user, it appears that no responsible person has been assigned to this issue. Please review the details, designate an assignee, and resubmit the issue to proceed.",
need: {
mass_approve: false,
response: true,
assign: true
},
ui: {
caption: "",
assign: "",
buttons: {
approve: "Report issue",
reject: "Cancel"
}
}
}
});

Flow condition

  • Return to: Step 3 Ask Business user.

Step 5: Status updated: Assigned for resolution

General

Name: Status updated: Assigned for resolution

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Approval by Assignee",
payload: [
{ role: "others", status: "pending_assignee_approval" }
]
});

Step 6: Send Notification to Assignee

General

Name: Send notification to Assignee

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Approval by Assignee",
is_completed: false,
payload: {
to: JSON.parse(execution.getVariable("users"))["assignee"],
message: execution.getVariable("expertise_text"),
need: {
mass_approve: false,
response: true,
assign: false
},
ui: {
caption: "Dear user, you have been assigned to this issue report. Please review the details and confirm your acceptance to proceed. If you are unable to take responsibility, kindly specify the reason for rejection. The purpose of the issue request is provided above for your reference.",
assign: "",
buttons: {
approve: "Accept and proceed",
reject: "Provide a reason and reject"
}
}
}
});

Step 7: Ask Assignee

  • If Accept and proceed: proceed to Step 8.
  • If Provide a reason and reject: proceed to Step 7.1.

Step 7.1: Status updated: Rejected

General

Name: Status updated: Rejected

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Assignee rejected the issue report",
payload: [
{role: "others", status: "rejected"}
]
});

Step 7.2: Send Notification to Business user

General

Name: Send notification to Business user

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Assignee rejected the issue report",
is_completed: true,
payload: {
to: [execution.getVariable("invoker_id")],
message: execution.getVariable("expertise_text"),
need: {
mass_approve: false,
response: false,
assign: false
},
ui: {
caption: "Dear user, your issue report has been rejected by the assigned person. Please review the reason for rejection above to understand the context. No further action is required. If you need to submit a new report, please start the process again.",
assign: "",
buttons: {}
}
}
});

End event

Step 8: Status updated: Resolution in progress

General

Name: Status updated: Resolution in progress

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Resolution in progress",
payload: [
{role: "others", status: "resolution_in_progress"}
]
});

Step 9: Send Notification to Business user

General

Name: Send notification to Business user

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Resolution in progress",
is_completed: false,
payload: {
to: [execution.getVariable("invoker_id")],
message: "Dear user, the assignee has approved the changes, and work on resolving the issue is now in progress. You will be notified of any updates or once the issue is resolved.",
need: {
mass_approve: false,
response: false,
assign: false
},
ui: {
caption: "",
assign: "",
buttons: {}
}
}
});

Step 10: Send Notification to Assignee

General

Name: Send notification to Assignee

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Resolution in progress",
is_completed: false,
payload: {
to: JSON.parse(execution.getVariable("users"))["assignee"],
message: "Dear user, please confirm whether the issue has been resolved. If resolved, click the 'Issue resolved' button. If the issue cannot be resolved, please provide a reason first, then click 'Issue cannot be resolved'.",
need: {
mass_approve: false,
response: true,
assign: false
},
ui: {
caption: "",
assign: "",
buttons: {
approve: "Issue resolved",
reject: "Issue cannot be resolved"
}
}
}
});

Step 11: Ask Assignee

Decision Points

  • If Issue resolved: proceed to Step 12.
  • If Issue cannot be resolved: proceed to Step 11.1.

Step 11.1: Status updated: Cannot be resolved

General

Name: Status updated: Cannot be resolved

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Issue сannot be resolved",
payload: [
{role: "others", status: "cannot_be_resolved"}
]
});

Step 11.2: Send Notification to Business user

General

Name: Send notification to Business user

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Issue cannot be resolved",
is_completed: true,
payload: {
to: [execution.getVariable("invoker_id")],
message: execution.getVariable("expertise_text"),
need: {
mass_approve: false,
response: false,
assign: false
},
ui: {
caption: "Dear user, the issue cannot be resolved. You can review the reason above. No further action is required. If you need to submit a new report, please start the process again.",
assign: "",
buttons: {}
}
}
});

End Event

Step 12: Status Updated: Finished

General

Name: Status Updated: Finished

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "The issue resolved by Assignee",
payload: [
{role: "others", status: "finished"}
]
});

End Event

Step 13: Send Notification to Business user

General

Name: Send notification to Business user

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "The issue resolved by Assignee",
is_completed: false,
payload: {
to: [execution.getVariable("invoker_id")],
message: "Dear user, has the issue been resolved? If so, please click 'Confirm resolution'. If not, provide a reason for the continued issue first, then click 'Mark as not resolved'.",
need: {
mass_approve: false,
response: true,
assign: false
},
ui: {
caption: "",
assign: "",
buttons: {
approve: "Confirm resolution",
reject: "Mark as not resolved"
}
}
}
});

Step 14: Ask Business user

Decision

  • If Confirm resolution: proceed to Step 15.
  • If Mark as not resolved: proceed to Step 14.1.

End Event

Step 14.1: Send Notification to Assignee

General

Name: Send notification to Assignee

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "Issue not resolved",
is_completed: true,
payload: {
to: JSON.parse(execution.getVariable("users"))["assignee"],
message: execution.getVariable("expertise_text"),
need: {
mass_approve: false,
response: false,
assign: false
},
ui: {
caption: "Dear user, the issue has been marked as not resolved. If you agree to proceed with the resolution, please click 'Accept and proceed'. If the issue cannot be resolved, please provide an explanation first, then click 'Reject with a reason'.",
assign: "",
buttons: {
approve: "Accept and proceed",
reject: "Provide a reason and reject"
}
}
}
});

Return to

  • Step 7 Ask Assignee

Step 15: 15. Status updated: Resolved

General

Name: 15. Status updated: Resolved

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "The issue resolved",
payload: [
{role: "others", status: "resolved"}
]
});

Step 16: Send Notification to Assignee

General

Name: Send notification to Assignee

Implementation

  • Type: Connector
  • Connector ID: http-connector

Asynchronous continuations

  • Before and Exclusive

Job execution

  • Retry time cycle: R5/PT5M

Connector inputs

Headers

  • Local variable name: headers
  • Assignment type: Map
  • Map entries:
    • Key: Content-Type
    • Value: application/json

Method

  • Local variable name: method
  • Assignment type: String or expression
  • Value: POST

Payload

  • Local variable name: payload
  • Assignment type: Script
  • Format: JavaScript
  • Type: Inline script
  • Script:
JSON.stringify({
execution_id: execution.getId(),
stage: "The issue resolved",
is_completed: true,
payload: {
to: JSON.parse(execution.getVariable("users"))["assignee"],
message: "Dear user, the issue resolution has been confirmed.",
need: {
mass_approve: false,
response: false,
assign: false
},
ui: {
caption: "",
assign: "",
buttons: {}
}
}
});

End Event

Issue report schema

Issue_report_schema