子包dle: Parsing and sending an event to an external API
The following example bundle uses theTransform actionto parse an event payload into a string. The bundle then posts the string to aRequestBinendpoint URL. The URL represents an external API.
The bundle allows you to see the incoming event payload ($.input
) and other data available in the ZIS flow object ($.subdomain
,$.integration_key
,$.account_id
). SeeData accessible to Actions in flows.
{
"zis_template_version":"2019-10-14",
"name":"Simple event parser",
"description":"React to incoming events by parsing the entire payload and sending it to an external API",
"resources":{
"external_api.post_message":{
"type":"ZIS::Action::Http",
"properties":{
"name":"external_api.post_message",
"definition":{
"method":"POST",
"url.$":"$.external_api_url",
"requestBody":{
"text.$":"$.message"
}
}
}
},
"parse_and_dump_event_flow":{
"type":"ZIS::Flow",
"properties":{
"name":"parse_and_dump_event_flow",
"definition":{
"StartAt":"ParseEvent",
"States":{
"ParseEvent":{
"Type":"Action",
"ActionName":"zis:common:transform:Jq",
"Parameters":{
"expr":"[((. | to_entries) | map(\"\" + .key + \": \" + (.value | tostring)) | join(\",\") | tostring)]",
"data.$":"$"
},
"ResultPath":"$.external_api.message",
"Next":"PostMessageToExternalApi"
},
"PostMessageToExternalApi":{
"Type":"Action",
"ActionName":"zis:INTEGRATION:action:external_api.post_message",
"Parameters":{
"external_api_url":"REQUESTBIN_URL",
"message.$":"A thing happened, and the incoming event payload is: {{$.external_api.message}}"
},
"End":true
}
}
}
}
},
"parse_and_dump_event_job_spec":{
"type":"ZIS::JobSpec",
"properties":{
"name":"parse_and_dump_event_job_spec",
“event_source”:"support",
"event_type":"ticket.CommentAdded",
"flow_name":"zis:INTEGRATION:flow:parse_and_dump_event_flow"
}
}
}
}
Replace the following placeholders with your own values:
- "INTEGRATION" with the name of your integration
- "REQUESTBIN_URL" with aRequestBinendpoint URL. Example: "https
://abc123.x.pipedream.net".