Skip to main content
The step palette lists steps alphabetically. This page groups them by what they are for. Each input’s information icon in the editor gives its exact description and type. The inputs below are named as the editor shows them. Unless a step says otherwise, a step that fails sends the run to its error path.

Shape the document

Map to Insight document has one input, MappingName: a list of the mappings, followed by classic mappers that no mapping has replaced. The step runs the mapping’s published version; a test run uses the draft. Place it before the upload step; see Use the mapping in a workflow. Modify property is for preparing data that a later processing step needs, such as a property that a decision or a lookup reads. Final keyword values belong in the mapping. Write to a property, then choose how its value is supplied:
  • Fixed value
  • Copy from another property
  • Translate through a table, optionally a shared one
  • Remove
  • Expression
Its Try it card shows the result for a sample. Save as test keeps that sample as an action test.

Work with Nobly Insight documents

These steps use ContentFlow’s own service account for Nobly Insight. That account’s access rights decide which document types the steps can write.

Upload to Nobly Insight

After a Map to Insight document step, the upload sends the mapped document as it is: the step’s DocumentTypeId and DocumentDateTime inputs are not applied. Without a mapping step, the upload keeps its earlier behaviour:
  • the document type is the item’s ItemTypeName, or DocumentTypeId when it is set
  • keywords come from a classic mapper named in the step, or from properties named like keywords (DynamicKeywordMapping)
FailOnUnmappedKeywords decides whether a keyword the document type does not have fails the upload or is dropped. Leave it empty for the default: after a Map to Insight document step, strict unless the mapping passes properties through; with DynamicKeywordMapping, strict; with a classic mapper, lenient. Choose Use step output to make the new document available to later steps, for example a step that records its ID.

Update keywords in Nobly Insight

DocumentId identifies the document, usually from an item property. There is no search by keyword values; resolve the ID earlier in the workflow. After a Map to Insight document step, every keyword the mapping lists is managed. A listed keyword with a value for this document is set, and one without a value is cleared. Keywords the mapping does not list keep their current values. Without a mapping step, the step maps the item’s complete metadata through a classic mapper, and the item must carry the complete metadata. DocumentTypeId is an optional guard: when set, the step fails instead of writing if the document has another type. SkipWorkflow keeps the change from triggering Nobly Insight workflows. SkipAutofillCoordination writes autofill keyword groups exactly as sent.

Delete document in Nobly Insight

A document that is already in the trashcan counts as deleted. A document Nobly Insight does not know fails the step, unless TreatNotFoundAsSuccess is set.

Upload JSON metadata to Nobly Insight

Place it after the upload step. Content chooses what the JSON file holds:
  • Received: the item as the run received it
  • Processed: the item as it is at this step
  • Both
The metadata document’s type, date and keywords come from its own MappingName, or from DocumentType alone, without keywords. To link the two documents, give both mappings a row that writes the trace ID to the same keyword.

Get or convert the file

Fetch file from Azure Blob takes the storage endpoint (BlobEndpoint), container (ContainerName) and file name (BlobName), usually from an item property. The service principal that reads the container is given by the names of three global variables:
  • TenantIdVariable
  • ClientIdVariable
  • ClientSecretVariable, which must be a secret variable
TargetFileName sets the item’s file name. Give it a real extension, because the MIME type is derived from it unless you set ContentMimeType.

Call other systems

In all of these steps, an error from the other system, a timeout, or a failure to get a token fails the step. Decide in the exception flow whether that should fail the run or schedule a retry.

Webhook callback

Place it right after the upload. Url and Body are templates with placeholders: Values are encoded for where they land: percent-encoded in the URL, and JSON-escaped in the body and headers. You supply the quotes in a JSON body. An empty Body sends a default payload with the document ID, trace ID, workflow name, file name and batch name. HeadersJson adds request headers. Method is POST, PUT or PATCH.

Authenticate with OAuth client credentials

Webhook callback and Http Request can authenticate with the OAuth 2.0 client-credentials grant against the other system’s token endpoint. Set TokenEndpoint, and give the name of a global variable for each credential, never the credential itself: Tokens are cached and reused until shortly before they expire, so a batch of thousands of items does not request a token per item. If the other system answers 401 to an Http Request, ContentFlow requests a fresh token and retries once. A Webhook callback that gets a 401 fails. Http Request can instead authenticate as ContentFlow’s Nobly Insight service account, for calls to the Nobly Insight API that no dedicated step covers.

SQL Query

The connection string comes from a global variable named in ConnectionVariable; make it a secret variable. Put values in @name parameters through ParametersJson, never by building the query text from item data. ResultMode is one of:
  • Scalar: the first column of the first row
  • FirstRow
  • AllRows
MaxRows caps the result. The step fails rather than truncating it. The step is read-only unless AllowWrites is set.

Send email

The SMTP password is a step input; give it from a secret global variable rather than as literal text. RateLimitInMinutes limits how often the step sends across all runs, for example one alert per hour during a failing batch.

Control the run

Record and diagnose

Prefer a dedicated step to a script where one exists: a step is visible on the canvas, validated, and needs no code review.

Steps kept for older versions

Some steps are no longer offered, but saved workflow versions that use them keep running:
  • Derive document type is replaced by the document type rules in a document mapping.
  • RemoveProperty, ReplacePropertyValue, SplitPropertyValues, PadPropertyValues and RegexReplaceValue are replaced by Modify property and the changes on mapping rows.
  • MapUdmToNoblyInsightModel is replaced by Map to Insight document.
  • Test and PadString have no replacement.
The editor keeps such a step’s type selectable on the step that uses it, so that older workflows stay editable. Replace the step when you next change the workflow, and test the result before you publish it.

Testing workflows

Run a sample through the draft workflow and its draft mappings, and compare the result with what you expect.