Skip to content

Connect Power Automate to Atlas Labs

To connect Power Automate to Atlas Labs, import the generated Swagger 2.0 custom connector, or use the HTTP action, and catch events with the When an HTTP request is received trigger set to Anyone. The connector stores your key as one Authorization parameter, so type Bearer before the key.

Reference table — Atlas Labs API fields and Microsoft's documented names, not part of the fictional simulation. Microsoft Learn checked 15 Oct 2026.
At a glanceValue
Receive eventsRequest → When an HTTP request is received; “Who can trigger the flow?” = Anyone
Call the APIBuilt-in HTTP action, or a Custom connector imported from swagger-2.0.json
Where the key goesHTTP action: Headers Authorization = Bearer lab_off_YOUR_KEY. Connector: the connection's Authorization box = Bearer lab_off_YOUR_KEY
BodyHeaders Content-Type: application/json; Body = your JSON
Idempotency-KeyA Headers item set to the trigger body's id
Spec to importSwagger 2.0 only, under 1 MB; OpenAPI 3.0 is rejected (Microsoft Learn, updated 10 Oct 2026)
Webhook host*.logic.azure.com is a recognised platform host with a higher delivery allowance
LicenceThe Request trigger is marked Premium in Microsoft's documentation; the HTTP action is widely reported as Premium, but we could not retrieve Microsoft's page saying so
RetriesHTTP action → Settings → Retry policy (default exponential; up to 90 attempts, 5 s minimum, 1 day maximum)
Start a sandbox and your keys are filled in for you. This page uses lab_off_YOUR_KEY and lab_fac_YOUR_KEY. After you start a sandbox, the “Connect it” panel's Power Automate tab shows the header values with your real keys and a copy button.
Atlas Labs fictional company API
signed webhook
to *.logic.azure.com
HTTP action or
custom connector
Your flow Request trigger → HTTP
action
Your apps Teams, SharePoint, Dataverse…
Both legs are optional: a flow can only listen, only call, or do both.

Custom connector or HTTP action?

Reference table — two ways to call the Atlas Labs API from Power Automate, not part of the fictional simulation.
Custom connectorHTTP action
SetupImport swagger-2.0.json once per environmentNone; paste method, URI, headers, body
Where the key livesIn a connection, as one Authorization valueIn the action's Headers (use a secure input or an environment variable)
Typed actionsYes, one per route, named from its summaryNo
LicenceCustom connectors are reported to need Premium (vendor guide, not Microsoft)Reported Premium; Microsoft's page not retrieved

How do I import the custom connector?

  1. Download the connector files below, or fetch https://automationatlas.io/labs/api/v1/swagger-2.0.json directly. Power Automate accepts Swagger 2.0 only and rejects OpenAPI 3.0, which is why Atlas Labs publishes the older format too.
  2. Solutions → New → Automation → Custom connector → Import an OpenAPI file. Name it “Atlas Labs” and pick apiDefinition.swagger.json (under 1 MB).
  3. Security page: API Key. Parameter name Authorization, location Header. The downloaded definition already declares this; if a file lists several security definitions, Power Automate uses the top one.
  4. Create connector → Test → New connection. In the Authorization box type Bearer lab_off_YOUR_KEY, the word Bearer included. Make a second connection for the Factory key and pick the right one per action.
    Connection field
    Authorization (securestring)
    Value
    Bearer lab_off_YOUR_KEY or Bearer lab_fac_YOUR_KEY
    Sent as
    Authorization request header
  5. Action names come from the spec. Each action takes its name from the operation's summary (for example “List sales orders”) and its id from the operationId. Header names and values must be ASCII.

How do I call Atlas Labs with the HTTP action?

  1. Add an action → Built-in → HTTP.
  2. Fill the request. This example bridges an accepted sales order into a Factory work order; read quantity and due_sim_day first with a GET https://automationatlas.io/labs/api/v1/office/sales-orders/<id> (Head Office key).
    Method
    POST
    URI
    https://automationatlas.io/labs/api/v1/factory/work-orders
    Headers
    Authorization: Bearer lab_fac_YOUR_KEY
    Content-Type: application/json
    Idempotency-Key: the trigger body's id
    Body
    {"sales_order_id": "<from the trigger>", "quantity": <from the order>, "due_date": <due_sim_day from the order>}

    Preset matters. Pick a preset with a manual bridge (Standard or Full) or this write returns 409 already_bridged, because Starter bridges automatically.

  3. Open the action's Settings → Retry policy. The default is exponential; you can set up to 90 attempts with a minimum interval of 5 seconds and a maximum of one day. Outbound requests time out after 120 seconds; Atlas Labs answers in well under one.
  4. Add a Condition: status 201, or 409 with error.code = already_bridged, is success; anything else goes to your error branch.

How do I catch Atlas Labs events?

  1. New instant cloud flow → trigger “When an HTTP request is received”. Paste the webhook payload from the Webhooks page into “Use sample payload to generate schema”, or leave the schema blank.
  2. Set “Who can trigger the flow?” to Anyone. Atlas Labs cannot send a Microsoft Entra ID token, and the other two modes require one. Microsoft describes Anyone as a legacy setting with no additional authentication.
  3. Save. The HTTP POST URL appears only after saving. It contains a signature in its query string, so treat the whole URL as a secret and never paste it anywhere public.
  4. Subscribe the URL in Atlas Labs with either key. *.logic.azure.com is recognised as a platform host.
    Method
    POST
    URL
    https://automationatlas.io/labs/api/v1/webhooks
    Headers
    Authorization: Bearer lab_off_YOUR_KEY
    Content-Type: application/json
    Body
    {"url": "https://<…>.logic.azure.com:443/workflows/…", "events": ["office.sales_order.accepted"]}
  5. Send the test ping (POST /webhooks/{id}/test). Any 2xx from your flow activates the subscription; add a Response action with status 200 if you want to control the reply. Atlas Labs waits 5 seconds.
  6. Signature. Power Automate has no Standard Webhooks check. Read the three webhook-* headers and the body from the trigger outputs and compute the HMAC in expressions or an Azure Function; we did not verify the exact expression syntax against Microsoft's docs, so follow your tenant's usual pattern.

Idempotency and retries

  • Use the trigger body's id (evt_…) as the Idempotency-Key so a retried run returns the original response (Idempotency-Replayed: true).
  • The HTTP action's default retry policy depends on the environment's performance profile (Microsoft limits page): Low, up to 2 retries scaling by about 5 minutes; Medium and High, up to 12 retries scaling by about 7 seconds. Configure it per action when the default is too slow for a 429 whose Retry-After is usually one or two seconds.
  • Calls made in parallel share one key's budget. If the HTTP action runs in an Apply to each with concurrency control on, keep the degree of parallelism to one or two: more calls at once only collect more 429s, and enough of them put the key into a short cooldown.
  • Inbound and outbound synchronous requests time out after 120 seconds.

Common errors

Reference table — errors as seen from Power Automate, not part of the fictional simulation.
You seeWhy, and the fix
Import: “OpenAPI 3.0 format not supported”You uploaded openapi.json. Use swagger-2.0.json or the downloaded apiDefinition.swagger.json.
401 unauthorizedThe connection's Authorization value lacks Bearer , or the key is unknown, revoked or deleted with its sandbox. An expired sandbox answers writes with 423 sandbox_expired instead.
403 wrong_systemThe wrong connection or header on the action. /factory/* wants lab_fac_, /office/* wants lab_off_.
Trigger never fires; subscription goes disabled“Who can trigger the flow?” was not Anyone, so the trigger refused the unauthenticated request and no 2xx reached Atlas Labs (the exact status Microsoft returns is not something we have confirmed); after 5 consecutive failures the subscription is disabled. Fix the trigger and re-enable with PATCH/webhooks/{id}.
422 webhook_url_rejectedPaste the entire generated URL, query string included, exactly as shown after saving.
415 unsupported_media_typeAdd the Content-Type: application/json header to the HTTP action.

Gotchas

  • Swagger 2.0 only. Microsoft Learn (updated 10 Oct 2026): OpenAPI 3.0 definitions are not supported for custom connectors, and the file must be under 1 MB.
  • “Anyone” is a legacy mode with no authentication, so the trigger URL's query-string signature is the only secret. Rotate the flow's URL if it leaks.
  • Premium. Microsoft's SharePoint tutorial marks the Request trigger as Premium. For the HTTP action we could only find third-party and Q&A sources; some tenants report running it without a Premium licence. Check your own licence before you build.
  • ASCII only in custom-connector header names and values.
  • Action names. Imported actions are named from each operation's summary; the operationId is the stable id behind them.

Download the connector

Reference table — Power Automate files generated from the Atlas Labs OpenAPI document, not part of the fictional simulation.
FileVerified
atlas-labs-power-automate-connector.zipGenerated, byte-deterministic Not imported into a live tenant.
apiDefinition.swagger.jsonGenerated and validated as Swagger 2.0 (swagger-parser)
apiProperties.json (connection parameter Authorization)Structurally validated only

Questions people ask

Do I need the premium HTTP action, or can I use a custom connector?
Both routes work against the API; both are reported to need a Premium licence. Microsoft's own page marks the Request trigger Premium; for the HTTP action we have only secondary sources (checked 15 Oct 2026).
Why does Power Automate need the Swagger 2.0 file?
Because custom connectors accept OpenAPI 2.0 only; Microsoft Learn states that 3.0 definitions are not supported. Atlas Labs publishes swagger-2.0.json for exactly this.
Why does the key box want the word Bearer?
The connector has a single Authorization connection parameter that is sent verbatim as the header value, so it must contain Bearer followed by the key.
Why must the trigger be set to Anyone?
The other two modes require a Microsoft Entra ID bearer token on the incoming request, and Atlas Labs sends only the Standard Webhooks headers.
Can I share the trigger URL in a ticket or a doc?
No. In Anyone mode the URL's signature is the only thing protecting the flow.
Where do the connector's action names come from?
From the Atlas Labs spec: each operation has a short summary (the action's display name) and a unique operationId (its id), for example “List sales orders” and listSalesOrders.

Sources (checked 15 Oct 2026): Microsoft Learn, “Create a custom connector from an OpenAPI definition” (updated 10 Oct 2026), “Trigger flows securely with OAuth” (Request trigger modes), “Limits and configuration in Power Automate” (retry policy, timeouts), SharePoint site-design tutorial (Request trigger is Premium). Atlas Labs facts from the API source, observed live.