INTEGRATION · MICROSOFT TEAMS

PostKnock in Microsoft Teams

Post delivery confirmations, QR scans and call outcomes straight into a Teams channel using a Power Automate Workflows webhook.

Office 365 connectors are gone. Microsoft disabled connector webhooks (*.webhook.office.com) in May 2026. The steps below use Workflows, which is the current supported route. If you have an old connector URL saved in PostKnock, replace it — it will no longer deliver.
Included with Pro. The Microsoft Teams format is part of PostKnock Pro. You can set up webhooks from Admin › Webhooks once you are on a Pro plan.

Connect Microsoft Teams

No developer required — this is all point and click.

  1. 1

    Open the Teams channel that should receive alerts

    In Microsoft Teams, go to the team and channel where you want PostKnock updates to appear.

  2. 2

    Open Workflows from the channel menu

    Select More options (…) next to the channel name, then Workflows.

  3. 3

    Pick the webhook template

    Search for and select a template such as Send webhook alerts to a channel. This is the current replacement for the old Incoming Webhook connector.

  4. 4

    Configure and save the workflow

    Confirm the team and channel, adjust the workflow parameters if you need to, then select Save.

  5. 5

    Copy the webhook link

    Once the workflow exists, copy the webhook URL it generates. It will be a long …environment.api.powerplatform.com address containing a signature — treat it as a credential, because anyone holding it can post to that channel.

  6. 6

    Add it to PostKnock

    In PostKnock open Admin › Webhooks › New webhook, set the format to Microsoft Teams, paste the URL, choose your events, save, then select Test to confirm a card appears in the channel.

Every event you can subscribe to

Pick the ones you want per webhook, or subscribe to all of them with *. Each event carries the fields listed here inside data.

Event Fires when data fields
postcard.sent A postcard was handed to the print partner and mailed. campaign_id, contact_id, wave_number, lob_id
postcard.in_transit The postal service scanned the piece in transit. campaign_id, contact_id, wave_number, lob_id
postcard.delivered Delivery confirmed. Never presumed — only a real carrier confirmation fires this. campaign_id, contact_id, wave_number, lob_id, delivered_date
postcard.failed The piece failed or came back as return-to-sender. campaign_id, contact_id, wave_number, lob_id, reason
call.scheduled A follow-up call was queued for a contact. campaign_id, contact_id, wave_number, scheduled_for
call.completed A call was completed and its outcome recorded. campaign_id, contact_id, wave_number, call_result, contact_type, duration_seconds
call.no_answer A call rang out or the line was unavailable. campaign_id, contact_id, wave_number
contact.responded A contact scanned the QR code on their postcard. contact_id, campaign_id, method, tracked_url_id
contact.unsubscribed A contact was marked do-not-contact. contact_id, reason
campaign.activated A campaign started sending. campaign_id, name, total_contacts
campaign.completed Every wave finished, or someone marked the campaign complete. campaign_id, name
campaign.paused A campaign paused — by request, or automatically on a low wallet balance. campaign_id, name, reason
touchpoint.failed An individual postcard or email touchpoint failed. campaign_id, contact_id, touchpoint_type, reason

IDs in data are the same per-account IDs you see in the PostKnock URL bar, so campaign_id: 7 is the campaign at /campaigns/7.

Want the raw JSON instead?

The Microsoft Teams format posts a message written for humans reading a channel. If you would rather receive the signed JSON envelope and handle it in your own code, use a Generic webhook — same events, full payload, HMAC signature included.

Questions

My old webhook.office.com URL stopped working. +
Microsoft retired Office 365 connectors in Teams: connector webhooks were disabled between 18 and 22 May 2026, and the older logic.azure.com trigger URLs were retired on 30 November 2025. Create a Workflows webhook using the steps above and update the URL on your existing PostKnock webhook — you do not need to recreate it or re-pick your events.
Why do the buttons not appear on the card? +
Microsoft’s Workflows webhooks accept the Message Card format PostKnock sends, but they do not render card buttons. The message text, campaign and contact all arrive correctly; only the action link is dropped. Nothing is lost from the payload itself.
Does it work in a private channel? +
Support for posting to private channels through Workflows has been rolling out and is handled on Microsoft’s side, not ours. If a private channel is not selectable in the Workflows app, create the flow from the Power Automate portal instead.
Do I need a signing secret? +
No. As with Slack and Discord, the Teams webhook URL carries its own signature, so PostKnock does not add an HMAC header for Teams subscriptions.
Who owns the workflow? +
The person who created it. Microsoft ties a workflow to its owner rather than to the channel, so if that person leaves the organisation the flow can be orphaned. Adding a co-owner is worth doing up front.

Direct mail your other tools can see

Send postcards and follow-up calls from PostKnock, and stream every delivery, scan and call outcome straight into the tools your team already watches.

Start free

Outbound webhooks are included with PostKnock Pro.