Skip to main content

Microsoft Power Automate Connector

Phoenix exposes a REST facade alongside its MCP endpoint so that HG Insights data can be used as actions inside Microsoft Power Automate flows, Copilot Studio agents, Power Apps canvas apps, and any other tool that consumes OpenAPI 2.0 / Swagger custom connectors (Zapier, n8n with OpenAPI import, Azure Logic Apps).

Unlike Cursor or Claude Desktop, Power Automate does not speak the Model Context Protocol. Microsoft's Custom Connector platform requires Swagger 2.0 with a distinct path per operation — so Phoenix exposes /api/powerautomate/<tool_name> endpoints that wrap the same MCP tools. Credits, rate limits, and caching are identical to the main /api/mcp surface.

What you'll need

  1. A Phoenix API key (phx_...). Generate one in the Phoenix web app under Settings → API keys for your organization.
  2. A Power Automate (or Power Apps / Copilot Studio) environment where you can create custom connectors.
  3. The three URLs below.

Key URLs

PurposeURL
OpenAPI 2.0 spec (for connector import)https://phoenix.hginsights.com/api/powerautomate/openapi.json
Tool invocationPOST https://phoenix.hginsights.com/api/powerautomate/<tool_name>
Tool catalog (public, no auth)GET https://phoenix.hginsights.com/api/powerautomate

Sample request

POST https://phoenix.hginsights.com/api/powerautomate/company_firmographic
x-api-key: phx_YOUR_KEY_HERE
Content-Type: application/json

{
"companyDomain": "cisco.com"
}

Expected 200 response (truncated):

{
"domain": "cisco.com",
"name": "Cisco Systems, Inc.",
"industry": "Networking Hardware",
"employeeCount": "80001-90000",
"revenue": "54000000000",
"website": "cisco.com",
"location": {
"city": "San Jose",
"state": "California",
"country": "United States"
},
"metadata": {
"provider": "hginsights",
"confidence": 0.95,
"lastUpdated": "2026-03-01T00:00:00Z"
}
}

Response bodies match each tool's output schema exactly — no JSON-RPC envelope, no { result: ... } wrapper.

Importing the connector

Option A — Power Automate (cloud, file upload)

  1. Visit make.powerautomate.com.
  2. Left nav → More → Discover all → Data → Custom connectors.
  3. Click + New custom connector → Import an OpenAPI file.
  4. Give the connector a name (e.g. HG Insights Phoenix).
  5. Download the spec locally and upload it:
    curl https://phoenix.hginsights.com/api/powerautomate/openapi.json -o phoenix.json
  6. Walk through the wizard screens:
    • General: scheme and host prefill from the spec — leave as-is.
    • Security: authentication type is API Key; parameter label API Key, parameter name x-api-key, location Header.
    • Definition: all available actions appear automatically. Review names and summaries if you like.
  7. Click Create connector.
  8. Click the Test tab → + New connection → paste your phx_... API key.
  9. Pick any action (e.g. CompanyFirmographic), fill companyDomain: cisco.com, and click Test operation. You should see a 200 response.

Option B — URL import

If your Power Automate tenant allows URL-based OpenAPI import, skip the download step and paste the spec URL directly:

  1. Custom connectors → + New → Import from URL.
  2. Paste https://phoenix.hginsights.com/api/powerautomate/openapi.json.
  3. Continue with the wizard from step 6 above.

Option C — Copilot Studio and Power Apps

Both products consume the same custom-connector artifact. Import via Power Platform admin center (Data → Custom connectors) and the connector becomes available to Copilot Studio plug-ins and Power Apps canvas apps in the same environment.

Authentication

The facade accepts either header — use the one your tool prefers:

Authorization: Bearer phx_...

or

x-api-key: phx_...

The emitted OpenAPI spec advertises x-api-key because Power Automate's UI handles it most smoothly (no "Bearer " prefix for end users to type). Bearer still works at runtime if you configure the connection manually.

Available actions

For the authoritative list with schemas, call the discovery endpoint:

GET https://phoenix.hginsights.com/api/powerautomate

The current allowlist covers:

  • HG Insights v1 catalog: list_product_categories, get_vendor_information, list_product_attributes, list_intent_topics.
  • Company enrichment (HG Insights v2): company_firmographic, company_technographic, company_spend, company_research, company_operating_signals, company_install_time_series, company_intent, intent_category.
  • Contacts (Apollo): contact_search, contact_enrich.
  • SEC filings: sec_filing_section, sec_full_text_search.
  • Federal / government: search_federal_contracts, search_gov_opportunities, company_gov_opportunities, company_gov_relationships.

Low-level or internal tools (hg_data_query, hg_catalog, Snowflake customer-data tools, agent invocation) are intentionally not exposed through the facade; they remain available through the main /api/mcp endpoint for MCP clients.

Error responses

All errors return a plain JSON body of the form { error: <code>, message: <human readable>, details?: <optional> } — no JSON-RPC envelope:

StatusError codeWhen
400validation_failedBody failed schema validation. details carries the Zod issues
400invalid_jsonBody is not valid JSON
400invalid_parametersTool-level semantic validation failed (e.g. must provide companyDomain OR hg_id)
401unauthorizedMissing or invalid API key
402credit_limit_exceededYour organization has exhausted its credit allocation under hard enforcement
404tool_not_foundTool name is not exposed through the facade
424missing_integrationYour org is missing a required integration (e.g. hginsights_v2). details.required lists the key(s)
429Rate limit hit; honor Retry-After and X-RateLimit-* headers
502tool_execution_failedUpstream tool or API failed

Credits and rate limits

Calls through the Power Automate facade consume credits and share the rate-limit bucket with the main Phoenix MCP endpoint (/api/mcp). A company_firmographic call through either surface bills the same number of credits.

Check your organization's remaining credits in the Phoenix web app under Settings → Usage.

Smoke test with curl

Before wiring anything into Power Automate, confirm the facade works from your laptop:

# Discovery — no auth required
curl -sS https://phoenix.hginsights.com/api/powerautomate \
| jq '.tools[] | .name'

# OpenAPI spec — no auth required
curl -sS https://phoenix.hginsights.com/api/powerautomate/openapi.json \
| jq '.swagger, .host, .paths | keys'

# Firmographic lookup
curl -sS \
-H "x-api-key: $PHX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"companyDomain":"cisco.com"}' \
https://phoenix.hginsights.com/api/powerautomate/company_firmographic \
| jq .

Troubleshooting

Connector import fails. Download the spec to a local file (curl ... -o phoenix.json) and try the file-upload path instead of URL import. Some tenants block URL-based imports.

Every action returns 401. Confirm the API key field in your connection is set to the raw key (phx_...) and not prefixed with Bearer .

424 missing_integration on every HG v2 tool. Your organization needs the hginsights_v2 integration configured. Contact your Phoenix admin.

Action returns 400 with validation_failed. The details array lists which fields failed. Required identifiers have no default at the facade boundary — you must explicitly supply them (e.g. companyDomain).

employeeCount returned as a string instead of a number. Some HG Insights records return range strings (e.g. "10,001-50,000") rather than raw integers. The connector schema declares the field as string to cover both cases. Parse with int() or float() in PA expressions when you need numeric behavior.

  • Supported MCP Clients — for Cursor, Claude Code, VS Code Copilot, ChatGPT, and other clients that speak MCP natively.
  • Best Practices — rate limits, error handling, and optimization tips that apply to both the MCP endpoint and the Power Automate facade.