Activity - Publish External Data
Overview
- Pushes data from a work item or asset to an external target.
Video explanation on how to set up this activity
Steps to set up this activity
Overview:
The Publish External Data Activity allows you to automatically send data from Rise-X to an external system via a webhook or API endpoint. Activities are triggered when a task in a workflow is submitted.
Steps to Set Up:
- On Zapier create a new zap and then select the trigger to be a webhook.
- This requires Zapier premium.
- Copy the webhook address and save it for later.
- e.g. “https://hooks.zapier.com/hooks/catch/123456789/qwerty/”.
- Create a new or use an existing workflow on Rise-X.
- This requires ecosystem orchestrator or workflow owner permission.
- Add in a text field.
- Either using the No-Code Builder or the Advanced Editor.
- Navigate to the text field in the Advanced Editor.
- Open up the advanced editor then go to.
- e.g. Steps > {step name} > {task name} > Layouts > {layout name} > {section name} > {text component name}
- Copy the “dataPath” property value of the text component and save it for late.
- One of the properties of the text component is the “dataPath” property.
- Copy the value of this and save it for later.
- e.g. copy “$.task.section.textComponent” from “dataPath”: “$.task.section.textComponent”
- Navigate to the task that the text component is in.
- Open up the advanced editor then go to.
- e.g. Steps > {step name} > {task name}
- Copy the “name” property value of the task and save it for later.
- One of the properties of the task is the “name” property.
- Copy the value of this and save it for later.
- e.g. “ecosystemName/workflow/entity/generated-8eb85834-78c7-4361-8604-5aa70856fed1/untitledstep__generated-5cb4512c-484f-4b59-b2bb-0223b1667c56/untitledtask__generated-cb68e3de-b9ca-4e09-8d9d-47347f8c7b12”
- Create the Activity.
- Open up the advanced editor then go to the activities group of the button on the task you want to trigger the data sending activity.
- e.g. Steps > {step name} > {task name} > Action Set > {action name} > Activities
- Add a Publish External Data Activity to the task you want to trigger the data send by hovering over “Activities” > clicking the ellipsis > “Add activity” > “Publish External Data”.
- Set up these properties on the Publish External Data Activity.
- “publishIdentity”: {}
- “endPointUri”: Paste the Zapier webhook address.
- “httpMethod”: “POST”
- “AuthType”: “BASIC”
- “operations”:[{}]
- “sectionName”: Paste the task “name”.
- “dataMapping”: {}, {} (You can include many components in your data mapping and each goes in it’s own {})
- “fromPath”: The data path of the component.
- “toProperty”: The label that you want for this data as it gets received to Zapier.
- “updateType”: “Push”
- “targetPath”: The first part of the data path from a component in the dataMapping (e.g. if the data path is $.task.section.textComponent then you would put “$.task.section” as your targetPath value).
- “dataType”: “Object”
- “target”: 1
- “sectionName”: Paste the task “name”.
- Example of the set up configuration for the Publish External Data Activity.
- Publish the workflow.
- Test the Integration.
- Create a new work item.
- Fill in data for the text component in the work item.
- Submit the task.
- You can now go back to Zapier and test the webhook and you should see a new entry having been sent to the webhook and inside this entry will be the value in the text component.
- Done 🎉
{
"continueOnError": false,
"executeWhen": "AfterExecute",
"runOnSystemEvents": [],
"properties": {
"publishDataDirection": "ToRelatedEntity",
"publishIdentity": {
"endPointUri": "https://hooks.zapier.com/hooks/catch/123456789/qwerty/",
"httpMethod": "POST",
"authType": "BASIC"
},
"operations": [
{
"sectionName": "ecosystemName/workflow/entity/generated-8eb85834-78c7-4361-8604-5aa70856fed1/untitledstep__generated-5cb4512c-484f-4b59-b2bb-0223b1667c56/untitledtask__generated-cb68e3de-b9ca-4e09-8d9d-47347f8c7b12",
"dataMapping": [
{
"fromPath": "$.task.section.textComponent",
"toProperty": "text data"
},
{
"fromPath": "$.task.section.numberComponent",
"toProperty": "number data"
}
],
"updateType": "Push",
"targetPath": "$.task.section",
"dataType": "Object",
"excludeProperties": []
}
],
"target": 1,
"sectionName": "ecosystemName/workflow/entity/generated-8eb85834-78c7-4361-8604-5aa70856fed1/untitledstep__generated-5cb4512c-484f-4b59-b2bb-0223b1667c56/untitledtask__generated-cb68e3de-b9ca-4e09-8d9d-47347f8c7b12"
}
}
Advanced Editor properties and what they do
Properties shared between activities
Property | What does the property do (in plain english) | Possible values | How to find these values (in plain english) |
displayName | label of the activity | any string | |
comments | additional comments on what the activity do | any string | |
executeWhen | decides on when to execute the activity
| BeforeExecute
AfterExecute
OnExecute
Manual | |
runOnSystemEvents | specify an action event (that starts with $) that this activity will be executed | [”$actionEvent1”, “$actionEvent1”] | |
expression | data path expression if it satisfies then it will execute this activity | e.g. "'{$.asset.id}' = “123" |
Properties unique to this activity
- All of these unique properties sit within a “properties” object e.g.
{
"property one shared between components": "",
"properties": {
"entityType": "",
"etc": "",
}
}
Property | What does the property do (in plain english) | Possible values | How to find these values (in plain english) |
publishDataDirection | The direction of publish data | "FromRelatedEntity”
"ToRelatedEntity”
"ToSelf” | |
target | specifies the target 1 = default or MPA, 2 = SGTradex | 1 or 2 | You can use 1 as a default if you are using a url that goes outside Rise-X |
successDataPath | data path to persist the result of the external api request | $.successDataPath
e.g. "$.integration.confirmation” | |
sectionName | section name or task name of the target work | e.g. "zapier_ai_integration/workflow/entity/generated-98040a89-a060-4899-9e66-9ddf9a76ece6/untitledstep__generated-ccc8f20d-2984-4234-ad86-3cd52783626b/untitledtask__generated-ada09d93-330c-45fa-8cd1-a4fcf506ba9c” | |
publishIdentity | See below | ||
operations | See below | ||
publishEntity | See below | ||
attachmentOperation | See below |
publishIdentity
Property | What does the property do (in plain english) | Possible values | How to find these values (in plain english) |
endPointUri | Specifies the location that data will be published to | ||
httpMethod | Specifies the API method used | “Post”, “Patch”, etc | |
authType | Specifies the authentication type used by the endPointUri API system | e.g. “Basic” |
publishEntity
Property | What does the property do (in plain english) | Possible values | How to find these values (in plain english) |
authType | authentication type of the external api | Bearer / Basic / string | this is usually documented by the external api |
clientId | clientId provided by the external api | string | this is usually documented by the external api |
clientSecret | clientSecret provided by the external api | string | this is usually documented by the external api |
endpointUri | endpointUri provided by the external api | string | this is usually documented by the external api |
operations
Property | What does the property do (in plain english) | Possible values | How to find these values (in plain english) |
sectionName | Name of task to publish data | Called the section name in the database but it is actually the task name and you can find this as the value after the last “/” on the “name” property of the task in advanced editor | |
dataMapping | List of how data is mapped | "dataMapping": [
{
"fromPath": "$.customerRequest.customerRequest.name",
"toProperty": "name"
},
{
"fromPath": "$.customerRequest.customerRequest.content",
"toProperty": "content"
}
] | For the toProperty take the right most element from your dataPath for the component that you want to publish to (e.g. $.task.task.componentName you would just put in “componentName”) |
updateType | Type of update to perform | "Push"
"Set"
"Rename"
"Pull"
"Unset"
"AddToSet"
"Publish"
"Merge"
"Replace"
"Increment"
"Decrement" | e.g. “Push” works when you are using the “Post” HTTP method |
targetPath | The first part of the dataPath for the target component | “$.task.task” | if the dataPath is $.task.task.componentName then the value would be “$.task.task” |
dataType | The type of data being updated | "None""Object""Array""Constructor""Property""Comment""Integer""Float""String""Boolean""Null""Undefined""Date""Raw""Bytes""Guid""Uri""TimeSpan” | |
excludeProperties | List of properties to exclude in publishing. Usually used with private data so that it is not accidentally published | [”$.privateData"] | Just the datapath of the component for the flow that you are in |
attachmentOperation
Property | What does the property do (in plain english) | Possible values | How to find these values (in plain english) |
sourceFolder | Specifies the source folder of attachments that will be used in this activity. For each attachment component you have an associated folder. | A string of the attachments folder
e.g. “request-files” | To find the string of the attachments folder follow this general format
”{stepName}-{attachmentComponnetName}” |
toPath | target folder | A string of the attachments folder
e.g. “request-files” | To find the string of the attachments folder follow this general format
”{stepName}-{attachmentComponnetName}” |
Advanced Editor example of this activity fully set up
{
"continueOnError": false,
"executeWhen": "AfterExecute",
"runOnSystemEvents": [],
"properties": {
"publishDataDirection": "ToRelatedEntity",
"publishIdentity": {
"endPointUri": "https://hooks.zapier.com/hooks/catch/123456789/qwerty/",
"httpMethod": "POST",
"authType": "BASIC"
},
"operations": [
{
"sectionName": "ecosystemName/workflow/entity/generated-8eb85834-78c7-4361-8604-5aa70856fed1/untitledstep__generated-5cb4512c-484f-4b59-b2bb-0223b1667c56/untitledtask__generated-cb68e3de-b9ca-4e09-8d9d-47347f8c7b12",
"dataMapping": [
{
"fromPath": "$.taskName.textComponent",
"toProperty": "text data"
},
{
"fromPath": "$.taskName.numberComponent",
"toProperty": "number data"
}
],
"updateType": "Push",
"targetPath": "$.taskName",
"dataType": "Object",
"excludeProperties": []
}
],
"target": 1,
"sectionName": "ecosystemName/workflow/entity/generated-8eb85834-78c7-4361-8604-5aa70856fed1/untitledstep__generated-5cb4512c-484f-4b59-b2bb-0223b1667c56/untitledtask__generated-cb68e3de-b9ca-4e09-8d9d-47347f8c7b12"
}
}