DestinationsOtherMicrosoft Teams

Microsoft Teams

Send messages to Microsoft Teams channels via incoming webhooks. Use Zeotap to notify teams about new leads, audience membership changes, sync completions, or any data events that need human attention.

Prerequisites

  • A Microsoft Teams workspace with a channel you want to send messages to
  • An incoming webhook configured on the target channel
  • Admin or owner permissions on the channel to create the webhook connector

Authentication

Microsoft Teams uses incoming webhooks for authentication. No OAuth flow is required.

Setting Up an Incoming Webhook

  1. Open Microsoft Teams and navigate to the channel where you want to receive messages
  2. Click the (more options) menu next to the channel name
  3. Select Connectors (or Manage channel > Connectors depending on your Teams version)
  4. Search for Incoming Webhook and click Configure
  5. Give the webhook a name (e.g., “Zeotap”) and optionally upload a custom icon
  6. Click Create
  7. Copy the webhook URL that is generated
  8. Paste the URL into the Webhook URL field in Zeotap

The webhook URL is the only credential required. Keep it secret — anyone with the URL can post messages to the channel.

Configuration

Microsoft Teams does not require additional configuration fields beyond the webhook URL.

Target Settings

FieldTypeRequiredDescription
Message TemplateTextareaYesMessage template with {{field_name}} placeholders that are replaced by row values. Example: New lead: {{name}} ({{email}})

Supported Operations

Sync Modes

ModeSupported
InsertYes
Upsert
Update
Mirror

Audience Sync Modes

ModeSupported
AddYes
Remove
Mirror
Upsert

Features

  • Field Mapping: No — message content is controlled by the template
  • Schema Introspection: No — Microsoft Teams is a messaging destination

How It Works

Zeotap sends a Microsoft Teams message for each row of data:

  1. For each row, the message template is populated by replacing {{field_name}} placeholders with actual row values
  2. The rendered message is wrapped in an Adaptive Card and sent to the configured channel via the incoming webhook URL
  3. Messages appear in the channel as posted by the webhook connector

Template Syntax

Use double curly braces to reference row fields:

New lead: {{first_name}} {{last_name}}
Email: {{email}}
Company: {{company_name}}
Score: {{lead_score}}

Any {{field_name}} that does not match a row field is left as-is in the output.

Message Format

Messages are sent as Adaptive Cards, which support rich text formatting and render consistently across Teams desktop, web, and mobile clients. Each message contains a single TextBlock with the rendered template content and word wrapping enabled.

Rate Limits

Microsoft Teams incoming webhooks are rate limited to approximately 4 requests per second per channel. Zeotap enforces a 250ms delay between messages to stay within this limit. If the webhook returns HTTP 429 (Too Many Requests), Zeotap backs off using the Retry-After header or exponential backoff.

For high-volume syncs, message delivery may be delayed due to rate limiting. Consider using a summary template that aggregates multiple records into fewer messages if you are syncing large datasets.

Best Practices

  • Use descriptive webhook names: Name the webhook after the Zeotap sync (e.g., “New Leads Notifications”) so team members know the source of messages
  • Keep templates concise: Teams channel messages work best when they are scannable — include only the most important fields
  • Use a dedicated channel: Create a dedicated channel for Zeotap notifications to avoid cluttering general conversation channels
  • Rotate webhooks periodically: If a webhook URL is compromised, delete it and create a new one in Teams, then update the URL in Zeotap
  • Monitor rate limits: For syncs with thousands of rows, expect delivery to take time due to the 4 requests/second rate limit

Troubleshooting

Webhook URL is invalid

Verify the webhook URL starts with https:// and was copied in full from the Microsoft Teams connector configuration. The URL typically contains .webhook.office.com/webhookb2/ in its path.

Messages not appearing in channel

Check that the incoming webhook connector is still active on the channel. Webhooks can be disabled or removed by channel admins. Navigate to the channel’s Connectors settings to verify.

HTTP 400 Bad Request

The message payload may exceed the 28 KB size limit for Teams webhooks. Reduce the number of fields in your message template or shorten field values. Check that the template does not produce malformed content.

HTTP 429 Too Many Requests

The webhook is being rate limited. Zeotap automatically handles this by backing off, but sustained high-volume syncs may experience delays. Consider reducing sync frequency or batching notifications into summary messages.

HTTP 403 Forbidden

The webhook URL may have expired or been revoked. Create a new incoming webhook on the channel and update the URL in Zeotap.

Connection test sends a message

The connection test sends a brief test message (“Zeotap connection test successful.”) to the configured channel to verify the webhook is working. This is expected behavior and confirms the integration is active.

Webhook connector not available

Some Microsoft Teams environments restrict the use of incoming webhooks. Check with your Teams administrator to ensure connectors are enabled for your organization and the specific channel.