FlowRunner
PricingContact
Theme
Start Free

Microsoft Advertising Offline Conversions

Advertising

Report offline conversions back to Microsoft Advertising so bidding and reporting reflect real revenue: agents apply conversions and adjustments in batches of up to 1,000 against the Microsoft Click ID, and can invoke any Campaign Management v13 SOAP operation through the escape hatch.

3 actions OAuth available
A CRM deal moves to closed-won with a stored Microsoft Click ID on the contact
The agent verifies the msclkid exists and the offline conversion goal is at least two hours old
Apply Offline Conversions uploads the deal value against the click, batched with the day's other wins
The returned SOAP response is parsed; any BatchError rows inside PartialErrors are pulled out
Failed rows post to Slack with the click ID and error, so attribution gaps get fixed, not buried
When a deal is refunded or repriced, a person confirms the correction before Apply Offline Conversion Adjustments retracts or restates the reported value

What This Integration Enables

An ad platform is only as smart as the conversions it sees, and for any business that closes revenue on the phone, in a store, or through a sales cycle in the CRM, the website pixel sees almost nothing. This connector closes that loop for Microsoft Advertising: FlowRunner agents upload offline conversions against the stored Microsoft Click ID in batches of up to 1,000 per call, and keep the record honest afterward with Restate and Retract adjustments matched by click ID, goal name, and conversion time. - Report CRM-closed and point-of-sale revenue back to the originating ad click - Batch up to 1,000 conversions or adjustments per call - Correct the record: Restate a value when a deal changes size, Retract when it cancels - Parse the raw SOAP response and surface every BatchError inside PartialErrors - Reach any Campaign Management v13 operation through Call SOAP Operation The wrinkle is that everything this connector writes changes what the platform believes about revenue, which changes what it bids. That is why adjustments run behind FlowRunner's [human-in-the-loop](/concepts/human-in-the-loop) gates rather than on an agent's inference about a refund.

Without FlowRunner

Bing bids on clicks, not revenue Deals close in the CRM and phone sales convert offline, but Microsoft Advertising never hears about it
Corrections never happen A refunded deal stays in the conversion data forever because nobody retracts conversions by hand
Upload errors vanish Bulk imports through the UI fail row by row and no one reads which rows or why

With FlowRunner

Closed revenue flows back to the click Every won deal with a stored msclkid is reported to the platform, so bidding optimizes toward real money
The conversion record stays true Refunds trigger reviewed Retract adjustments and repriced deals get Restated, on a human's confirmation
PartialErrors get read Every batch response is parsed and failed rows are surfaced with enough context to repair the attribution

Use Case Scenarios

Closed-won deals become Bing conversions the same day

When a [HubSpot](/integrations/hubspot) deal reaches closed-won, the agent pulls the contact's stored msclkid, queues the deal, and each evening sends the batch through Apply Offline Conversions with deal values attached. Campaign ROI in Microsoft Advertising starts reflecting closed revenue instead of form fills, and the bidding engine gets trained on the outcomes that pay salaries.

The refund that un-reports itself, with a witness

A refund lands in [Stripe](/integrations/stripe). The agent matches it to the previously reported conversion by click ID, goal name, and conversion time, then drafts a Retract adjustment and posts it for approval with the original value and the refund reference side by side. On confirmation, Apply Offline Conversion Adjustments cancels the conversion. Partial refunds follow the same path as Restate adjustments with the corrected value. The conversion data stays truthful without anyone trusting an agent to rewrite revenue history alone.

Phone and point-of-sale conversions from a sheet

Call tracking and in-store sales land as rows in [Google Sheets](/integrations/google-sheets) with the captured msclkid. Nightly, the agent reads the day's rows, batches them, and uploads through Apply Offline Conversions. It then parses the returned rawXml, and if PartialErrors contains failed rows, posts them to [Slack](/integrations/slack) with the click IDs so the team fixes capture problems while the trail is warm.

Human-in-Loop Highlight

Apply Offline Conversion Adjustments rewrites reported revenue: a Retract cancels a conversion the platform has already learned from, and a Restate changes its value, up to 1,000 rows at a time. Fire it on a bad match and you have corrupted the training signal your entire Bing spend optimizes against. So the adjustment agent never acts on inference. It matches the refund or reprice to the original conversion, lays out both sides, "conversion reported 2026-07-12 at $4,800 against msclkid ...9f2, Stripe refund of $4,800 received today, proposed action: Retract", and waits for marketing ops to confirm. The upload side runs on a lighter footing because new conversions are correctable, but even there the agent reports every PartialErrors row to a person rather than silently dropping failed attributions.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

3 actions

Offline Conversions

2
  • Apply Offline Conversions Uploads offline conversions so revenue that happens away from the website, phone calls, in-store sales, CRM-closed deals, is attributed to the ad click via the Microsoft Click ID. References an existing offline conversion goal by name, sends up to 1,000 conversions per call, and returns the raw SOAP response whose PartialErrors element lists any failed rows. The goal must exist at least two hours before use, and data can take up to six hours to appear.
  • Apply Offline Conversion Adjustments Adjusts previously uploaded conversions: Restate changes a conversion's value, Retract cancels it entirely. Each adjustment matches the original by click ID, goal name, and conversion time, up to 1,000 per call. Value and currency apply only to Restate. Returns the raw SOAP response with PartialErrors for failed rows.

Advanced

1
  • Call SOAP Operation Escape hatch for any Campaign Management v13 SOAP operation not covered by a dedicated action. Provide the operation name and raw inner request XML; the service wraps it in an authenticated envelope with the AuthenticationToken, DeveloperToken, CustomerId, and CustomerAccountId headers populated, and returns the raw XML response.

Frequently Asked Questions

What can FlowRunner do with Microsoft Advertising Offline Conversions?

FlowRunner agents can run Apply Offline Conversions, Apply Offline Conversion Adjustments, and Call SOAP Operation in Microsoft Advertising Offline Conversions.

Does connecting Microsoft Advertising Offline Conversions to FlowRunner require OAuth?

Yes. Microsoft Advertising Offline Conversions connects to FlowRunner with OAuth 2.0, so agents authenticate without handling raw credentials.

Can Microsoft Advertising Offline Conversions trigger a FlowRunner workflow automatically?

Microsoft Advertising Offline Conversions doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Microsoft Advertising Offline Conversions

$100 in credits. No card required. Connect in minutes.