Skip to main content
images/morf.svg Morf supports the use of custom JSON events as workflow source event data. This means that you can send any arbitrary JSON data to Morf and trigger workflows based on any of the fields you include in the JSON payload. There are no schema restrictions on the JSON payload. Select Push Json - Json Body in the workflow building dialog in the admin dashboard to use this event source.
The admin dashboard is unable to display the schema of your JSON. As such, you will need to use custom CEL expressions in order to reference payload fields within the JSON.

Events

  • MORF_API_PUSH_JSON_BODY_UPDATE

Accessing fields in CEL

The JSON you send is exposed to CEL as a single variable named body. Every key in your JSON is reachable from it with regular dot or bracket syntax, including nested objects and lists. Given the example payload on the right:

Missing keys and optionals

Accessing a key that is not present in the payload raises a no such key error rather than returning null. That is fine for action parameters, which treat a missing key as an empty value, but it will fail a filter or wait node. Use one of these forms when a key may be absent: body.?foo is an optional value. It carries either a value or nothing, and it never errors. Call .orValue(fallback) to unwrap it with a default, or .hasValue() to test it. Chaining works too: body.?patient.?address.?zip.orValue("") returns the zip code when the whole path is present and an empty string otherwise.
JSON numbers arrive as CEL doubles because JSON has no integer type. Compare against 42.0 rather than 42 if you hit a type mismatch.