Skip to content

Microsoft Fabric: ingest row

Use Microsoft Fabric: ingest row to stream one row into an Eventhouse (KQL) table from a journey step, through the Fabric ingest API. Unlike the other Integrations points that take their own token, this one authenticates through an Entra ID application connected once for the whole account. There’s no token field on the point itself.

Typical uses:

  • Feed a reporting table: insert a row per journey step reached, for a dashboard or scheduled query downstream.
  • Log events as they happen: stream raw journey data into the Eventhouse instead of waiting on a batch pipeline.
  • Join with existing data: insert a device or tag value your Fabric tables can join against your own datasets.

Before you start

Anchor link to

Connect an Entra ID application under Settings > 3rd-party integrations > Microsoft Azure:

  1. Register an application in your Entra ID directory and create a client secret for it.
  2. In Directory (tenant) ID, enter your tenant, for example contoso.onmicrosoft.com.
  3. In Application (client) ID, enter the app registration’s client ID.
  4. In Client secret, paste the secret. It’s stored write-only: Pushwoosh never shows it again, so paste a new one to replace it.
  5. Click Connect Azure.

After you connect Azure, install the integration so the point appears in the journey builder.

Settings Microsoft Azure connect form with tenant ID, client ID, and client secret fields

Three things also need to be in place on the Eventhouse side, or the request fails:

  • The target table needs a JSON ingestion mapping — streaming ingestion of JSON doesn’t work without one.
  • The app registration needs the ingestor role on the Eventhouse. There’s no button for this in the Fabric UI — grant it by running this in the Eventhouse’s query window:
    .add database ['<database name>'] ingestors ('aadapp=<Application (client) ID>;<Directory (tenant) ID>')
  • The KQL database needs its streaming ingestion policy enabled. Run this in the same query window:
    .alter database ['<database name>'] policy streamingingestion enable

Keep the ['...'] around the database name in these commands if it contains a hyphen — a bare hyphenated name fails to parse.

Configure the point

Anchor link to
  1. Drag Microsoft Fabric: ingest row from the Integrations section of the left panel onto the canvas.
  2. Double-click the point and enter a Step Name.
  3. In Query URI host, enter your Eventhouse’s host from its Query URI, on the Eventhouse’s System overview page. Don’t include https://, for example trd-abc123.z9.kusto.fabric.microsoft.com.
Microsoft Fabric ingest row drawer with Step Name filled and Query URI host set to a Kusto URL
  1. In KQL database, enter the target database’s name.
KQL database field set to am-test
  1. In Table, enter the target table’s name.
Table field set to Events
  1. In Ingestion mapping, enter the name of the JSON mapping created on that table.
Ingestion mapping field set to EventsJsonMapping
  1. In Columns, add one row per Eventhouse column to write. Enter the column name and the value. Names must be non-empty and unique. A value can be fixed text or a traveler macro such as {{tag:Name}}, the same macros as in a Webhook body. Or click Insert Dynamic Value to pick an attribute an earlier step in this journey produced, for example an LLM response or a mapped Webhook value.
Columns name and value table with device_id mapped to a device hwid macro
  1. Click Save.

The traveler continues to whatever step you connect next on the canvas.

Attributes after the step runs

Anchor link to

This point doesn’t map any response data back into the journey.

Failures and unexpected responses

Anchor link to

Open Calls log in the point’s drawer and check the response:

  • 401 or 403 — the connected Entra ID application’s credentials or its ingestor role are wrong or missing.
  • 520 with StreamingIngestionException: Failed to initialize cursor tracker... — the KQL database’s streaming ingestion policy isn’t enabled. The error’s own permanent: false flag reads as “retry later,” but retrying doesn’t fix this. Run .alter database ['<database name>'] policy streamingingestion enable in the Eventhouse’s query window (see Before you start).

A failed request drops the traveler from the journey. See Errors and failed requests.

Example scenario: Streaming journey activity into a Fabric dashboard

Anchor link to

A team wants a live dashboard of every step reached across an active journey, without waiting on a batch export.

  1. Add Microsoft Fabric: ingest row right after the step you want to track. Set KQL database to am-test, Table to Events, and Ingestion mapping to EventsJsonMapping. In Columns, set device_id to {{device:hwid}}.
  2. Click Save.

Once this runs, each traveler who reaches this step shows up in the Eventhouse table within seconds, ready for the dashboard.