diff --git a/workflows/assign-roles-using-forms/Assign Roles via Form.json b/workflows/assign-roles-using-forms/Assign Roles via Form.json
new file mode 100644
index 0000000..24c7ef2
--- /dev/null
+++ b/workflows/assign-roles-using-forms/Assign Roles via Form.json
@@ -0,0 +1,176 @@
+{
+ "id": "57e25357-e5d5-4ba0-a6ac-d3bb6520731d",
+ "name": "Assign Roles",
+ "description": "Assign Roles",
+ "owner": {
+ "type": "IDENTITY",
+ "id": "bcae0dce3d7f4dac827e7853835882d1"
+ },
+ "usedBy": [],
+ "formInput": [
+ {
+ "id": "employeeNumber",
+ "type": "STRING",
+ "label": "Employee Number",
+ "description": "Employee Number"
+ },
+ {
+ "id": "employeeName",
+ "type": "STRING",
+ "label": "Employee Name",
+ "description": "Employee Name"
+ }
+ ],
+ "formElements": [
+ {
+ "id": "910277720848",
+ "elementType": "SECTION",
+ "config": {
+ "alignment": "LEFT",
+ "description": "",
+ "formElements": [
+ {
+ "config": {
+ "default": "",
+ "description": "",
+ "helpText": "",
+ "label": "Employee Number",
+ "placeholder": "",
+ "required": false
+ },
+ "elementType": "TEXT",
+ "id": "1545094594991",
+ "key": "employeeNumber",
+ "validations": []
+ },
+ {
+ "config": {
+ "default": "",
+ "description": "",
+ "helpText": "",
+ "label": "Employee Name",
+ "placeholder": "",
+ "required": false
+ },
+ "elementType": "TEXT",
+ "id": "521341509460",
+ "key": "employeeName",
+ "validations": []
+ },
+ {
+ "config": {
+ "dataSource": {
+ "config": {
+ "objectType": "ROLE"
+ },
+ "dataSourceType": "INTERNAL"
+ },
+ "forceSelect": true,
+ "helpText": "Select the roles you wish to assign from the list below",
+ "label": "Select Roles",
+ "maximum": 3,
+ "placeholder": "Role Name",
+ "required": true
+ },
+ "elementType": "SELECT",
+ "id": "517197279797",
+ "key": "selectRoles",
+ "validations": [
+ {
+ "validationType": "REQUIRED"
+ }
+ ]
+ }
+ ],
+ "label": "Role Assignment",
+ "labelStyle": "h2",
+ "showLabel": true
+ },
+ "validations": []
+ }
+ ],
+ "formConditions": [
+ {
+ "ruleOperator": "AND",
+ "rules": [
+ {
+ "sourceType": "INPUT",
+ "source": "Employee Number",
+ "operator": "EM",
+ "valueType": "STRING",
+ "value": ""
+ }
+ ],
+ "effects": [
+ {
+ "effectType": "DISABLE",
+ "config": {
+ "element": "521341509460"
+ }
+ },
+ {
+ "effectType": "DISABLE",
+ "config": {
+ "element": "517197279797"
+ }
+ }
+ ]
+ },
+ {
+ "ruleOperator": "AND",
+ "rules": [
+ {
+ "sourceType": "INPUT",
+ "source": "Employee Number",
+ "operator": "NOT_EM",
+ "valueType": "STRING",
+ "value": ""
+ }
+ ],
+ "effects": [
+ {
+ "effectType": "SET_DEFAULT_VALUE",
+ "config": {
+ "defaultValueLabel": "Employee Number",
+ "element": "1545094594991"
+ }
+ },
+ {
+ "effectType": "DISABLE",
+ "config": {
+ "element": "1545094594991"
+ }
+ }
+ ]
+ },
+ {
+ "ruleOperator": "AND",
+ "rules": [
+ {
+ "sourceType": "INPUT",
+ "source": "Employee Name",
+ "operator": "NOT_EM",
+ "valueType": "STRING",
+ "value": ""
+ }
+ ],
+ "effects": [
+ {
+ "effectType": "SET_DEFAULT_VALUE",
+ "config": {
+ "defaultValueLabel": "Employee Name",
+ "element": "521341509460"
+ }
+ },
+ {
+ "effectType": "DISABLE",
+ "config": {
+ "element": "521341509460"
+ }
+ }
+ ]
+ }
+ ],
+ "created": "2023-11-06T10:47:24.875353142Z",
+ "modified": "2024-01-10T03:14:32.648826623Z"
+}
\ No newline at end of file
diff --git a/workflows/assign-roles-using-forms/AssignRolesviaForms.json b/workflows/assign-roles-using-forms/AssignRolesviaForms.json
new file mode 100644
index 0000000..308322e
--- /dev/null
+++ b/workflows/assign-roles-using-forms/AssignRolesviaForms.json
@@ -0,0 +1,103 @@
+{
+ "name": "Assign Roles via Forms",
+ "description": "Assign Roles to a user via Forms Selection",
+ "definition": {
+ "start": "Form",
+ "steps": {
+ "End Step — Success": {
+ "type": "success"
+ },
+ "Form": {
+ "actionId": "sp:forms",
+ "attributes": {
+ "deadline": "7d",
+ "formDefinitionId": "57e25357-e5d5-4ba0-a6ac-d3bb6520731d",
+ "inputForForm_employeeName.$": "$.trigger.attributes.displayName",
+ "inputForForm_employeeNumber.$": "$.trigger.attributes.employeeNumber",
+ "notificationBody": "Hi,
Please use this form to assign additional roles to user - {{$.trigger.attributes.displayName}}.
Regards,
IAM Team",
+ "notificationSubject": "Action: Role Assignment Required",
+ "recipient": "bcae0dce3d7f4dac827e7853835882d1",
+ "reminder": "2d",
+ "reminderBody": "Hi,
Please use this form to assign additional roles to user - {{$.trigger.attributes.displayName}}.
Regards,
IAM Team"
+ },
+ "description": "Form sent to Manager to select Role Assignemnt for user",
+ "nextStep": "Send Email",
+ "type": "action",
+ "versionNumber": 1
+ },
+ "Get Identity": {
+ "actionId": "sp:get-identity",
+ "attributes": {
+ "id.$": "$.getListOfIdentities.identities[0].id"
+ },
+ "nextStep": "Loop",
+ "type": "action",
+ "versionNumber": 2
+ },
+ "Get List of Identities": {
+ "actionId": "sp:get-identities",
+ "attributes": {
+ "inputQuery": "attributes.identificationNumber.exact:{{$.form.formData.employeeNumber}}",
+ "searchBy": "searchQuery"
+ },
+ "nextStep": "Get Identity",
+ "type": "action",
+ "versionNumber": 2
+ },
+ "Loop": {
+ "actionId": "sp:loop:iterator",
+ "attributes": {
+ "context.$": "$.getIdentity",
+ "input.$": "$.form.formData.selectRoles",
+ "start": "Manage Access",
+ "steps": {
+ "End Step — Success 1": {
+ "type": "success"
+ },
+ "Manage Access": {
+ "actionId": "sp:access:manage",
+ "attributes": {
+ "addIdentities.$": "$.loop.context.id",
+ "comments": "Providing additional access",
+ "removeIdentity.$": "$.getIdentity.id",
+ "requestType": "GRANT_ACCESS",
+ "requestedItems": [
+ {
+ "id": "{{$.loop.loopInput}}",
+ "type": "ROLE"
+ }
+ ]
+ },
+ "nextStep": "End Step — Success 1",
+ "type": "action",
+ "versionNumber": 1
+ }
+ }
+ },
+ "nextStep": "End Step — Success",
+ "type": "action",
+ "versionNumber": 1
+ },
+ "Send Email": {
+ "actionId": "sp:send-email",
+ "attributes": {
+ "body": "{{$.form.formData.selectRoles}}",
+ "context": {},
+ "recipientEmailList": [
+ "xxxxx@xxxxx.com"
+ ],
+ "subject": "Form Data"
+ },
+ "nextStep": "Get List of Identities",
+ "type": "action",
+ "versionNumber": 2
+ }
+ }
+ },
+ "trigger": {
+ "type": "EVENT",
+ "attributes": {
+ "id": "idn:identity-created"
+ }
+ }
+}
\ No newline at end of file
diff --git a/workflows/assign-roles-using-forms/README.md b/workflows/assign-roles-using-forms/README.md
new file mode 100644
index 0000000..8ae244d
--- /dev/null
+++ b/workflows/assign-roles-using-forms/README.md
@@ -0,0 +1,5 @@
+Assign Roles using Forms
+
+This workflow sends a form to the manager for selecting roles that can/need to be added to a new hire user. Once he submits the form, tho selected roles are provisioned to the user. If there is no approval scheme setup they will be auto approved and provisioned. If there is an approval scheme defined for the roles, an access request will be started and notification will be sent out to the first approver. Once access request is approved, the role will be provisioned.
+
+Please modify the receipient email address in Send Email action in the workflow.
diff --git a/workflows/new-hire-additional-info/README.md b/workflows/new-hire-additional-info/README.md
new file mode 100644
index 0000000..7ae26f3
--- /dev/null
+++ b/workflows/new-hire-additional-info/README.md
@@ -0,0 +1,5 @@
+New Hire Additional Info
+
+This workflow sends an onboarding form to the manager for filing in additional info about a new hire. This workflow demonstrates the use of all types pf Form attributes, it's Input and Conditions.
+
+Please modify the Form receipient and the receipent email address in the Send Email action.
diff --git a/workflows/new-hire-additional-info/User Onboarding Form.json b/workflows/new-hire-additional-info/User Onboarding Form.json
new file mode 100644
index 0000000..980be82
--- /dev/null
+++ b/workflows/new-hire-additional-info/User Onboarding Form.json
@@ -0,0 +1,734 @@
+{
+ "id": "0f116186-9b9c-47ff-ada8-054866c34ef5",
+ "name": "User Onboarding",
+ "description": "New User Onboarding Form to gather additional information",
+ "owner": {
+ "type": "IDENTITY",
+ "id": "bcae0dce3d7f4dac827e7853835882d1"
+ },
+ "usedBy": [
+ {
+ "type": "WORKFLOW",
+ "id": "fd2780a2-7ce2-45e3-93ff-2732de71c696"
+ }
+ ],
+ "formInput": [
+ {
+ "id": "employeeName",
+ "type": "STRING",
+ "label": "Employee Name",
+ "description": "Employee Name"
+ },
+ {
+ "id": "employeeNumber",
+ "type": "STRING",
+ "label": "Employee Number",
+ "description": "Employee Number"
+ }
+ ],
+ "formElements": [
+ {
+ "id": "224499714467",
+ "elementType": "SECTION",
+ "config": {
+ "alignment": "CENTER",
+ "description": "",
+ "formElements": [
+ {
+ "config": {
+ "alignment": "CENTER",
+ "altText": "Logo",
+ "fileId": "01HKSSY7B77TEF3N4ZYBWF9JEB.jpg",
+ "label": "Logo",
+ "mimeType": "image/jpeg",
+ "originalFilename": "logo.jpg",
+ "showLabel": false
+ },
+ "elementType": "IMAGE",
+ "id": "450002799871",
+ "key": "",
+ "validations": []
+ },
+ {
+ "config": {
+ "description": "
Please enter the information below
", + "label": "Description Field", + "showLabel": false + }, + "elementType": "DESCRIPTION", + "id": "236874197365", + "key": "", + "validations": [] + } + ], + "label": "User Onboarding Form", + "labelStyle": "h2", + "showLabel": true + }, + "validations": [] + }, + { + "id": "1684040207998", + "elementType": "SECTION", + "config": { + "alignment": "LEFT", + "description": "Personal Information", + "formElements": [ + { + "config": { + "default": "", + "description": "", + "helpText": "", + "label": "Employee Name", + "placeholder": "John Doe", + "required": true + }, + "elementType": "TEXT", + "id": "1429005651615", + "key": "employeeName", + "validations": [ + { + "validationType": "REQUIRED" + } + ] + }, + { + "config": { + "default": "", + "description": "", + "helpText": "", + "label": "Employee Number", + "placeholder": "12345678", + "required": true + }, + "elementType": "TEXT", + "id": "1671045461835", + "key": "employeeNumber", + "validations": [ + { + "validationType": "REQUIRED" + }, + { + "config": { + "min": 5 + }, + "validationType": "MIN_LENGTH" + }, + { + "config": { + "max": 10 + }, + "validationType": "MAX_LENGTH" + } + ] + }, + { + "config": { + "default": true, + "falseLabel": "Part Time", + "helpText": "Are you a Full Time employee or a Part Time employee?", + "label": "User Type", + "trueLabel": "Full Time" + }, + "elementType": "TOGGLE", + "id": "1609723929797", + "key": "userType", + "validations": [] + }, + { + "config": { + "description": "", + "formatAsYouType": true, + "helpText": "", + "internationalized": true, + "label": "Personal Phone", + "placeholder": "", + "required": false + }, + "elementType": "PHONE", + "id": "1515015928726", + "key": "personalPhone", + "validations": [ + { + "validationType": "PHONE" + } + ] + }, + { + "config": { + "default": "", + "description": "", + "helpText": "", + "label": "Personal Email", + "placeholder": "john.doe@gmail.com", + "required": false + }, + "elementType": "EMAIL", + "id": "701850857199", + "key": "personalEmail", + "validations": [ + { + "validationType": "EMAIL" + } + ] + }, + { + "config": { + "default": null, + "description": "", + "helpText": "", + "label": "Date Of Birth", + "placeholder": "01/01/1900", + "required": false + }, + "elementType": "DATE", + "id": "53881113108", + "key": "dateOfBirth", + "validations": [ + { + "validationType": "DATE" + } + ] + }, + { + "config": { + "dataSource": { + "config": { + "objectType": "IDENTITY" + }, + "dataSourceType": "INTERNAL" + }, + "forceSelect": true, + "helpText": "Please select the contact the within company who referred you.", + "label": "Referred By", + "maximum": 1, + "placeholder": "", + "required": false + }, + "elementType": "SELECT", + "id": "267723420812", + "key": "referredBy", + "validations": [] + }, + { + "config": { + "dataSource": { + "config": { + "options": [ + { + "label": "Reading", + "subLabel": "", + "value": "Reading" + }, + { + "label": "Cycling", + "subLabel": "", + "value": "Cycling" + }, + { + "label": "Tennis", + "subLabel": "", + "value": "Tennis" + }, + { + "label": "Walking", + "subLabel": "", + "value": "Walking" + }, + { + "label": "Travelling", + "subLabel": "", + "value": "Travelling" + } + ] + }, + "dataSourceType": "STATIC" + }, + "forceSelect": true, + "helpText": "", + "label": "Hobbies", + "maximum": 3, + "placeholder": "", + "required": false + }, + "elementType": "SELECT", + "id": "734025725321", + "key": "hobbies", + "validations": [] + } + ], + "label": "Personal Information", + "labelStyle": "h2", + "showLabel": true + }, + "validations": [] + }, + { + "id": "1030151693562", + "elementType": "SECTION", + "config": { + "alignment": "LEFT", + "description": "Address Infomation", + "formElements": [ + { + "config": { + "default": "", + "description": "", + "helpText": "Address Line 1", + "label": "Address Line 1", + "placeholder": "Aptartment and Steet name", + "required": false + }, + "elementType": "TEXT", + "id": "1603331229619", + "key": "addressLine1", + "validations": [] + }, + { + "config": { + "dataSource": { + "config": { + "aggregationBucketField": "attributes.city.exact", + "indices": [ + "identities" + ], + "query": "attributes.cloudLifecycleState:active" + }, + "dataSourceType": "SEARCH" + }, + "forceSelect": true, + "helpText": "", + "label": "City", + "maximum": 1, + "placeholder": "", + "required": false + }, + "elementType": "SELECT", + "id": "1664914974591", + "key": "city", + "validations": [] + } + ], + "label": "Address Information", + "labelStyle": "h2", + "showLabel": true + }, + "validations": [] + }, + { + "id": "1337327807775", + "elementType": "SECTION", + "config": { + "alignment": "LEFT", + "description": "", + "formElements": [ + { + "config": { + "dataSource": { + "config": { + "options": [ + { + "label": "Windows", + "subLabel": "", + "value": "Windows" + }, + { + "label": "Mac", + "subLabel": "", + "value": "Mac" + }, + { + "label": "Linux", + "subLabel": "", + "value": "Linux" + }, + { + "label": "Chromebook", + "subLabel": "", + "value": "Chromebook" + } + ] + }, + "dataSourceType": "STATIC" + }, + "forceSelect": true, + "helpText": "Choose a preferred Laptop Type", + "label": "Preferred Laptop", + "maximum": 1, + "placeholder": "Laptop", + "required": false + }, + "elementType": "SELECT", + "id": "373090611599", + "key": "preferredLaptop", + "validations": [] + }, + { + "config": { + "dataSource": { + "config": { + "options": [ + { + "label": "Windows 10", + "subLabel": "", + "value": "Windows 10" + }, + { + "label": "Windows 11", + "subLabel": "", + "value": "Windows 11" + } + ] + }, + "dataSourceType": "STATIC" + }, + "forceSelect": true, + "helpText": "Please select the Windows OS Version", + "label": "Windows OS Version", + "maximum": 1, + "placeholder": "Windows 10", + "required": false + }, + "elementType": "SELECT", + "id": "384477034392", + "key": "windowsOsVersion", + "validations": [] + }, + { + "config": { + "dataSource": { + "config": { + "options": [ + { + "label": "Ubuntu", + "subLabel": "", + "value": "Ubuntu" + }, + { + "label": "Fedora", + "subLabel": "", + "value": "Fedora" + }, + { + "label": "RHEL", + "subLabel": "", + "value": "RHEL" + } + ] + }, + "dataSourceType": "STATIC" + }, + "forceSelect": true, + "helpText": "Please select the Linux OS", + "label": "Linux OS", + "maximum": 1, + "placeholder": "RHEL", + "required": false + }, + "elementType": "SELECT", + "id": "189407976938", + "key": "linuxOs", + "validations": [] + }, + { + "config": { + "columnCount": 2, + "columns": [ + [ + { + "config": { + "default": false, + "falseLabel": "No", + "helpText": "", + "label": "Oracle", + "trueLabel": "Yes" + }, + "elementType": "TOGGLE", + "id": "96112758113", + "key": "oracle", + "validations": [] + }, + { + "config": { + "default": false, + "falseLabel": "No", + "helpText": "Use this field to capture yes/no responses", + "label": "Microsoft", + "trueLabel": "Yes" + }, + "elementType": "TOGGLE", + "id": "631636696630", + "key": "microsoft", + "validations": [] + } + ], + [ + { + "config": { + "default": false, + "falseLabel": "No", + "helpText": "", + "label": "Eclipse", + "trueLabel": "Yes" + }, + "elementType": "TOGGLE", + "id": "224544041115", + "key": "eclipse", + "validations": [] + }, + { + "config": { + "default": false, + "falseLabel": "No", + "helpText": "Use this field to capture yes/no responses", + "label": "Postman", + "trueLabel": "Yes" + }, + "elementType": "TOGGLE", + "id": "1564902885354", + "key": "postman", + "validations": [] + } + ] + ], + "description": "", + "label": "Require Access to Applications", + "labelStyle": "h5", + "showLabel": true + }, + "elementType": "COLUMN_SET", + "id": "96610211858", + "key": "", + "validations": [] + }, + { + "config": { + "default": "", + "description": "", + "helpText": "", + "label": "Additional Requests", + "placeholder": "Please provide information about any additional requests", + "required": false, + "resize": false, + "rows": 2 + }, + "elementType": "TEXTAREA", + "id": "1422617803725", + "key": "additionalRequests", + "validations": [] + } + ], + "label": "IT Resources", + "labelStyle": "h2", + "showLabel": true + }, + "validations": [] + } + ], + "formConditions": [ + { + "ruleOperator": "AND", + "rules": [ + { + "sourceType": "INPUT", + "source": "Employee Number", + "operator": "NOT_EM", + "valueType": "STRING", + "value": "" + } + ], + "effects": [ + { + "effectType": "SET_DEFAULT_VALUE", + "config": { + "defaultValueLabel": "Employee Number", + "element": "1671045461835" + } + }, + { + "effectType": "DISABLE", + "config": { + "element": "1671045461835" + } + } + ] + }, + { + "ruleOperator": "AND", + "rules": [ + { + "sourceType": "INPUT", + "source": "Employee Name", + "operator": "NOT_EM", + "valueType": "STRING", + "value": "" + } + ], + "effects": [ + { + "effectType": "SET_DEFAULT_VALUE", + "config": { + "defaultValueLabel": "Employee Name", + "element": "1429005651615" + } + }, + { + "effectType": "DISABLE", + "config": { + "element": "1429005651615" + } + } + ] + }, + { + "ruleOperator": "AND", + "rules": [ + { + "sourceType": "ELEMENT", + "source": "userType", + "operator": "EQ", + "valueType": "BOOLEAN", + "value": "false" + } + ], + "effects": [ + { + "effectType": "HIDE", + "config": { + "element": "1337327807775" + } + } + ] + }, + { + "ruleOperator": "AND", + "rules": [ + { + "sourceType": "ELEMENT", + "source": "addressLine1", + "operator": "EM", + "valueType": "STRING", + "value": "" + } + ], + "effects": [ + { + "effectType": "DISABLE", + "config": { + "element": "1664914974591" + } + } + ] + }, + { + "ruleOperator": "AND", + "rules": [ + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EM", + "valueType": "STRING", + "value": "" + } + ], + "effects": [ + { + "effectType": "HIDE", + "config": { + "element": "96610211858" + } + }, + { + "effectType": "HIDE", + "config": { + "element": "1422617803725" + } + } + ] + }, + { + "ruleOperator": "OR", + "rules": [ + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EQ", + "valueType": "STRING", + "value": "Linux" + }, + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EQ", + "valueType": "STRING", + "value": "Mac" + }, + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EQ", + "valueType": "STRING", + "value": "Chromebook" + }, + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EM", + "valueType": "STRING", + "value": "" + } + ], + "effects": [ + { + "effectType": "HIDE", + "config": { + "element": "384477034392" + } + } + ] + }, + { + "ruleOperator": "OR", + "rules": [ + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EQ", + "valueType": "STRING", + "value": "Windows" + }, + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EQ", + "valueType": "STRING", + "value": "Mac" + }, + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EQ", + "valueType": "STRING", + "value": "Chromebook" + }, + { + "sourceType": "ELEMENT", + "source": "preferredLaptop", + "operator": "EM", + "valueType": "STRING", + "value": "" + } + ], + "effects": [ + { + "effectType": "HIDE", + "config": { + "element": "189407976938" + } + } + ] + } + ], + "created": "2023-11-06T06:52:30.861508639Z", + "modified": "2024-01-11T06:33:27.489476588Z" +} \ No newline at end of file diff --git a/workflows/new-hire-additional-info/UserOnboardingFormWorkflow.json b/workflows/new-hire-additional-info/UserOnboardingFormWorkflow.json new file mode 100644 index 0000000..4310dab --- /dev/null +++ b/workflows/new-hire-additional-info/UserOnboardingFormWorkflow.json @@ -0,0 +1,106 @@ +{ + "name": "Cybersolve User Onboarding Form Workflow", + "description": "Cybersolve User Onboarding Form Workflow", + "definition": { + "start": "Form", + "steps": { + "Define Variable": { + "attributes": { + "id": "sp:define-variable", + "variables": [ + { + "description": "Date of Birth\n\nhttps://velocity.apache.org/tools/devel/apidocs/org/apache/velocity/tools/generic/DateTool.html", + "name": "Date of Birth", + "transforms": [ + { + "id": "sp:transform:substring:string", + "input": { + "length": 10, + "start": 0 + } + } + ], + "variableA.$": "$.form.formData.dateOfBirth" + } + ] + }, + "nextStep": "Send Email", + "type": "Mutation" + }, + "End Step — Success": { + "type": "success" + }, + "Form": { + "actionId": "sp:forms", + "attributes": { + "deadline": "7d", + "formDefinitionId": "0f116186-9b9c-47ff-ada8-054866c34ef5", + "inputForForm_employeeName.$": "$.trigger.identity.name", + "inputForForm_employeeNumber.$": "$.trigger.attributes.employeeNumber", + "notificationBody": "Hello,