PDF extraction

How to send Microsoft Teams notifications for PDF processing

Post PDF ready and failed events into Microsoft Teams with Workflows webhooks, Microsoft Graph, Zapier, Make, n8n, or an adapter.

May 18, 2026 3 min read okraPDF

Microsoft Teams is a good notification destination for operations teams that already coordinate approvals in Microsoft 365. Use it for document-ready alerts, failed-processing alerts, and review handoffs. Do not use Teams as the primary storage location for extracted data.

This is API-feasible today, with caveats. Microsoft documents posting to Teams through incoming webhooks and connector-style messages, but also notes that Microsoft 365 Connectors are nearing deprecation and points users toward Workflows. The Teams actionable messages documentation describes posting JSON to a webhook URL. Microsoft Graph also supports sending chatMessage objects to channels or chats, subject to permissions and Teams rate limits.

Choose the Teams path

PathBest forNotes
Teams Workflows webhookSimple channel notificationsUser-owned workflow; watch ownership
Microsoft Graph chatMessageNative app integrationRequires Microsoft Entra app and permissions
Zapier, Make, or n8nFast no-code setupHandles payload transformation
Small adapter endpointInternal engineering setupVerifies okraPDF and posts Teams-shaped card

Because Teams expects a card or message payload, do not assume a raw okraPDF webhook can be pasted directly into Teams. Transform the event first.

Message design

Keep Teams cards brief.

For PDF Ready:

  • Title: PDF ready: invoice-1042.pdf
  • Facts: vendor, total, document type, job ID
  • Link: hosted PDF URL
  • Action: open review queue or source document

For PDF Failed:

  • Title: PDF failed: invoice-1042.pdf
  • Facts: error reason, job ID, source
  • Link: source PDF if available
  • Action: assign owner or open exception queue

Avoid posting full extracted JSON into Teams. Send a link to the data table or review screen.

Workflows webhook setup

In Teams:

  1. Create a workflow that starts when a Teams webhook request is received.
  2. Choose the target team and channel.
  3. Copy the generated webhook URL.

Then use an automation layer or adapter:

  1. Receive okraPDF document.processed and document.failed.
  2. Map the event into the Teams card shape expected by the workflow.
  3. POST the card JSON to the Teams workflow URL.

Zapier, Make, and n8n can all sit in the middle and do this transformation without code.

Microsoft Graph setup

Use Graph when you are building a real Teams app or Microsoft 365 integration.

The flow:

  1. Register an application in Microsoft Entra.
  2. Request the least-privileged permission that can send channel messages.
  3. Admin-consent the app when required.
  4. Store tenant, team, and channel IDs.
  5. Receive okraPDF event.
  6. Verify the okraPDF signature.
  7. POST a chatMessage to Graph.

Graph is more work than a webhook, but it gives better app governance and can fit enterprise tenants.

No-code setup

For Zapier:

  1. Trigger: okraPDF PDF Ready or Webhooks by Zapier Catch Hook.
  2. Action: Microsoft Teams Send Channel Message.
  3. Add a second Zap for failures.

For Make:

  1. Custom webhook receives okraPDF.
  2. Router splits ready and failed.
  3. Teams or HTTP module posts the card/message.

For n8n:

  1. Webhook node receives okraPDF.
  2. IF node splits event type.
  3. Microsoft Teams node or HTTP Request posts the message.

Operational caveats

Teams webhook workflows are often owned by a user. Add co-owners or use a service account where your Microsoft 365 policies allow it. Otherwise the workflow can break when an owner leaves.

Teams has rate limits. Do not send every page-level or field-level event. Send lifecycle events and exceptions.

Keep the okraPDF document ID in every message. It gives support a stable way to find the source event.