Skip to main content

Webhooks

Webhooks notify an external system when a scheduled export completes. They are provided by the Exportelier Automation app and stay disabled until a site admin enables webhook delivery.

Available webhook types

  • Slack incoming webhook — posts the export summary as a normal channel message.
  • Microsoft Teams Workflow webhook — posts an Adaptive Card 1.2 through a customer-created Teams Workflow.

Webhook configuration The webhook endpoint settings with type, masked reference, and status.

A webhook links — it does not upload the file to Slack or Teams

A webhook never attaches the generated PDF, DOCX, or Markdown file to the provider message. By default, a scheduled single-issue export links to its Jira issue. If the same run also has a successful Jira attachment target, the message links to that generated attachment. Both links stay inside Jira and require the recipient to have the corresponding Jira access.

What the message looks like

Both channels send the same summary line:

Exportelier export "Weekly sprint report": sprint-report-2026-09-01.pdf (14 issues)
  • Slack receives the summary followed by clickable Open Jira issue and Open document links when available.
  • Teams receives an Adaptive Card 1.2 with the heading Exportelier export: <schedule name>, the same summary line as its body, and matching OpenUrl actions when available.

The Jira issue link is omitted for multi-issue exports. The document link is omitted unless a Jira issue-attachment target succeeds first. The endpoint Test message has neither link because it does not export or attach a document.

Setup

Both channels follow the same three parts: enable delivery once, register the endpoint, then select it on a schedule.

1. Enable webhook delivery

In Exportelier Automation, open Settings → External delivery and switch on Enable webhook delivery. A confirmation dialog appears — this is where a site admin explicitly accepts that data leaves Atlassian.

Until this toggle is on, the Webhook delivery target stays greyed out on every schedule and nothing is ever sent.

2a. Register a Slack incoming webhook

Slack issues incoming webhook URLs through a Slack app:

  1. Open api.slack.com/apps and choose Create New App → From scratch. Give it a name — for example Exportelier — and pick the target workspace.
  2. In the app sidebar, open Incoming Webhooks and switch Activate Incoming Webhooks on.
  3. Click Add New Webhook to Workspace, select the channel that should receive the notifications, and confirm with Allow.
  4. Copy the generated Webhook URL. It has the form https://hooks.slack.com/services/T…/B…/…. Treat it like a password: anyone holding it can post into that channel.
  5. In Exportelier Automation, go to Settings → Webhook endpoints, set Channel to Slack incoming webhook, paste the URL into Endpoint, and click Add endpoint.

Exportelier accepts HTTPS URLs on the host hooks.slack.com only. Messages appear under the name and icon of the Slack app you created; both are changed in Slack under Basic Information → Display Information.

Not a Workflow Builder trigger URL

Slack Workflow Builder also hands out hooks.slack.com URLs, but they look like https://hooks.slack.com/triggers/… and expect the named variables of that workflow rather than a text field. Exportelier's host check accepts such a URL, yet no readable message will appear in the channel. Use an incoming webhook (/services/…) from a Slack app as described above.

2b. Register a Microsoft Teams Workflow webhook

Microsoft retired Office 365 Connector webhooks in May 2026. Exportelier therefore accepts new Teams endpoints only from Microsoft Teams Workflows.

  1. In the target Teams channel, open More options (…) → Workflows.
  2. Select Send webhook alerts to a channel. This is the Anyone template. If you build the workflow from scratch, choose the trigger When a Teams webhook request is received and set its authentication type to Anyone.
  3. Authenticate the Microsoft account that will own the workflow, select the team and channel, and add the workflow. Microsoft states that these Teams webhook templates do not require a premium license.
  4. Copy the generated URL. Treat it like a password: anyone who has this signed URL can trigger the workflow.
  5. In Exportelier Automation, go to Settings → Webhook endpoints, set Channel to Microsoft Teams workflow webhook, paste the URL into Endpoint, and click Add endpoint.

Supported URLs use HTTPS on a subdomain of environment.api.powerplatform.com or logic.azure.com. Exportelier does not send an OAuth header; the secret Anyone URL authorizes the request.

Messages appear under Microsoft's default Workflows bot identity. Microsoft does not support a custom bot name or icon for these webhook posts.

Retired Office 365 Connectors

Stored *.webhook.office.com endpoints remain visible as Action required so schedules are not silently changed. Create and test a new Workflow endpoint, update every affected schedule, and only then delete the legacy endpoint. Legacy endpoints are unavailable for new schedules and fail locally before any request is sent.

2c. Verify the endpoint

Every registered endpoint has a Test button. It posts one fixed message —

Exportelier test message: this webhook endpoint is configured correctly. No export was generated.

— through the same egress gate, stored secret, and payload builder a scheduled run uses, so a passing test proves the delivery path rather than just the URL format. The row shows Delivered on success; on failure the reason appears above the table and matches the troubleshooting list below.

The button is greyed out while webhook delivery is switched off, because nothing would be sent.

3. Select the endpoint on a schedule

Open Schedules, edit the schedule that should notify, and add the Webhook delivery target. Choose the Channel and then the Stored endpoint — endpoints are listed by their masked reference, because the URL itself is never returned to the browser after saving.

The two link options are enabled by default and can be switched off individually. A schedule can combine targets: the same run can attach the document to a Jira issue and post a webhook notification. Exportelier completes the attachment target before a webhook that requests the document link, regardless of their displayed order.

Troubleshooting

Nothing arrives immediately. Exportelier Automation checks for due schedules every five minutes, so a delivery can lag up to five minutes behind the configured time. To check an endpoint without waiting for a run, use its Test button under Settings → Webhook endpoints — it reports the same messages a scheduled run would.

Check the result of the last run. The Schedules list has a Last execution column with a status of Successful, Partially successful, or Execution failed, and shows the reason for a failure. A run that generated the document but could not post the webhook is reported as Partially successful.

MessageWhat it means
Webhook delivery is disabled by an administrator.The Enable webhook delivery toggle in Settings → External delivery is off.
The webhook endpoint is not configured.The stored endpoint was revoked in Exportelier while a schedule still referenced it. Register it again and reselect it on the schedule.
The stored secret does not match this webhook channel.The schedule's channel was switched to the other provider without picking a matching endpoint.
The webhook endpoint rejected the request.The provider answered with an error — typically a webhook revoked in Slack, or a Teams workflow that was turned off or deleted. Create a new endpoint on the provider side.
A Slack webhook must use an https hooks.slack.com URL.The URL was rejected at save time. Copy it again from the Slack app's Incoming Webhooks page.
This Microsoft Teams connector is no longer supported.A retired *.webhook.office.com connector. Replace it with a Workflow endpoint as described above.

Nothing at all in the channel, but the run says successful. Slack and Teams both answer 200 before the message is rendered. Check that the webhook is still bound to the channel you expect — in Slack under Incoming Webhooks, in Teams under Workflows.

Reliability and security

  • Webhook delivery is off by default and requires explicit admin confirmation.
  • Endpoint URLs are stored as encrypted Forge secrets, are never returned to the browser after saving, and are shown only as a masked reference. They must not be placed in tickets, screenshots, or logs.
  • Enabled link options send the Jira site address and, for single-issue exports, the issue key to the external provider. The generated URLs contain no credentials or signed query parameters and still require Jira authentication and permissions.
  • Requests time out after 10 seconds and retry once only for network failures, HTTP 429, or 5xx. A 4xx response is final and is not retried.
  • A successful provider response, including HTTP 200 or 202, marks the target as delivered.

See Security architecture for how egress is isolated, and the API page for programmatic triggering.