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
- A Phoenix API key (
phx_...). Generate one in the Phoenix web app under Settings → API keys for your organization. - A Power Automate (or Power Apps / Copilot Studio) environment where you can create custom connectors.
- The three URLs below.
Key URLs
| Purpose | URL |
|---|---|
| OpenAPI 2.0 spec (for connector import) | https://phoenix.hginsights.com/api/powerautomate/openapi.json |
| Tool invocation | POST 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)
- Visit make.powerautomate.com.
- Left nav → More → Discover all → Data → Custom connectors.
- Click + New custom connector → Import an OpenAPI file.
- Give the connector a name (e.g.
HG Insights Phoenix). - Download the spec locally and upload it:
curl https://phoenix.hginsights.com/api/powerautomate/openapi.json -o phoenix.json - 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 namex-api-key, locationHeader. - Definition: all available actions appear automatically. Review names and summaries if you like.
- Click Create connector.
- Click the Test tab → + New connection → paste your
phx_...API key. - Pick any action (e.g.
CompanyFirmographic), fillcompanyDomain: 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:
- Custom connectors → + New → Import from URL.
- Paste
https://phoenix.hginsights.com/api/powerautomate/openapi.json. - 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:
| Status | Error code | When |
|---|---|---|
| 400 | validation_failed | Body failed schema validation. details carries the Zod issues |
| 400 | invalid_json | Body is not valid JSON |
| 400 | invalid_parameters | Tool-level semantic validation failed (e.g. must provide companyDomain OR hg_id) |
| 401 | unauthorized | Missing or invalid API key |
| 402 | credit_limit_exceeded | Your organization has exhausted its credit allocation under hard enforcement |
| 404 | tool_not_found | Tool name is not exposed through the facade |
| 424 | missing_integration | Your org is missing a required integration (e.g. hginsights_v2). details.required lists the key(s) |
| 429 | — | Rate limit hit; honor Retry-After and X-RateLimit-* headers |
| 502 | tool_execution_failed | Upstream 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.
Related
- 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.