add-connector
The add-connector skill integrates any Power Platform connector into a Power Apps code app, serving as a generic fallback for connectors without dedicated skills like Dataverse, Azure DevOps, or Teams. Use this skill when adding less common connectors or when a specific connector skill is unavailable, following a workflow that checks memory, identifies the connector, retrieves its connection ID, and configures it within the app.
git clone --depth 1 https://github.com/microsoft/power-platform-skills /tmp/add-connector && cp -r /tmp/add-connector/plugins/mobile-apps/skills/add-connector ~/.claude/skills/add-connectorSKILL.md
**📋 Shared instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)** | **Connector reference: [connector-reference.md](${PLUGIN_ROOT}/shared/connector-reference.md)** — read both first.
# Add Connector (Generic)
Fallback skill for any connector not covered by a dedicated `/add-*` skill. For common connectors, prefer the dedicated skills:
- `/add-dataverse` — Dataverse tables
- `/add-sharepoint` — SharePoint Online
(More dedicated skills will land in v1: `/add-teams`, `/add-excel`, `/add-onedrive`, `/add-azuredevops`, `/add-office365`.)
The native host runtime (`@microsoft/power-apps-native-host`) handles connector routing, connection resolution, and OAuth consent through `PowerAppsProvider` in `app/_layout.tsx` — no separate executor wiring is needed.
## Workflow
1. Check Memory Bank → 2. Identify Connector → 3. Add Connector → 4. Inspect & Configure → 5. Build → 6. Update Memory Bank
---
### Step 1 — Check Memory Bank
Check for `memory-bank.md` per [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md).
Also confirm we're inside a Power Apps mobile app:
```bash
test -f power.config.json && test -f app.config.js
```
If either is missing, instruct the user to run `/create-mobile-app` first and stop.
### Step 2 — Identify Connector
**If `$ARGUMENTS` is provided or the caller already specified the connector**, use it directly and skip the question below.
Otherwise, ask the user which connector they want to add. Browse available connectors: [Connector Reference](https://learn.microsoft.com/en-us/connectors/connector-reference/).
**Before proceeding, check if the connector has a dedicated skill. If it does, delegate immediately and STOP:**
| Connector API name | Delegate to |
| ----------------------- | ------------------ |
| `sharepointonline` | `/add-sharepoint` |
| `commondataservice` | `/add-dataverse` |
Invoke the appropriate skill with the same `$ARGUMENTS` and **do not continue this skill's workflow**.
Common connector API names:
- `sharepointonline`, `teams`, `excelonlinebusiness`, `onedriveforbusiness`
- `azuredevops`, `azureblob`, `azurequeues`
- `office365`, `office365users`, `office365groups`
- `sql`, `commondataservice`
**Cloud flows are supported by the Power Apps CLI, but they are not connector data sources.** If the user wants to invoke an existing Power Automate cloud flow from the app, use the flow-specific commands instead of `add-data-source`:
```bash
npx power-apps list-flows --search '<flow-name-or-keyword>' --json
npx power-apps add-flow --flow-id <flow-guid> --non-interactive
```
To remove a flow later:
```bash
npx power-apps remove-flow --flow-id <flow-guid> --non-interactive
```
After `add-flow`, continue at Step 4 and inspect the generated service/model files the same way as connector data sources.
### Step 3 — Add Connector
**First, get the connection ID or connection reference** (see [connector-reference.md](${PLUGIN_ROOT}/shared/connector-reference.md)):
Run the `/list-connections` skill with the connector API ID (for example `shared_office365users`). Capture the exact `connectionId` from `create-connection`, or the `connectionRef` from `list-connection-references` if the caller is solution-aware. If creation cannot complete in the CLI, direct the user to create one using the environment-specific Connections URL — construct it from the active environment ID in context (from `power.config.json` `environmentId` or a prior step):
`https://make.powerapps.com/environments/<environment-id>/connections` → **+ New connection** → search for the connector → Create.
**Classify the connector before running `add-data-source`:**
| Connector shape | Examples | Required discovery | Add command |
| --- | --- | --- | --- |
| Action-style connector | Teams, Office 365 Users, Outlook, Azure DevOps | None after connection lookup | `npx power-apps add-data-source --api-id <apiId> --connection-id <connectionId>` |
| Table-based connector | Excel Online, OneDrive for Business, Azure Blob, SQL, SharePoint if not delegated | `list-datasets`, then `list-tables` | `npx power-apps add-data-source --api-id <apiId> --connection-id <connectionId> --dataset '<dataset>' --resource-name '<table>'` |
| SQL stored procedure | SQL Server | `list-datasets`, then `list-sqlStoredProcedures` if needed | `npx power-apps add-data-source --api-id shared_sql --connection-id <connectionId> --dataset '<database>' --sql-stored-procedure '<procedure>'` |
**For action-style connectors, print before starting:**
> "→ Running `npx power-apps add-data-source` for <connector>. ~10–30 seconds (writes generated services + connector schemas)."
Then run:
```bash
npx power-apps add-data-source --api-id <apiId> --connection-id <connectionId>
```
**For table-based connectors, discover datasets and tables first:**
```bash
npx power-apps list-datasets --api-id <apiId> --connection-id <connectionId> --json
npx power-apps list-tables --api-id <apiId> --connection-id <connectionId> --dataset '<dataset>' --json
```
Present the datasets/tables to the user if they did not specify them. Add one data source per selected table:
```bash
npx power-apps add-data-source --api-id <apiId> --connection-id <connectionId> --dataset '<dataset>' --resource-name '<table>'
```
**For SQL stored procedures, discover procedures only when the user asks to invoke a stored procedure rather than a table:**
```bash
npx power-apps list-sqlStoredProcedures --connection-id <connectionId> --dataset '<database>' --json
npx power-apps add-data-source --api-id shared_sql --connection-id <connectionId> --dataset '<database>' --sql-stored-procedure '<procedure>'
```
**For Dataverse actions/functions rather than tables, discovery is available but this plugin only adds Dataverse table CRUD:**
```bash
npx power-apps find-dataverse-api --search '<operation-name>' --json
```
Surface the matching operation metadata and STOP with a clear note that this plugin>-
>-
Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making ADO API calls.
Internal implementation skill invoked by /add-native for camera, image picker, barcode scanner, QR scanner, and camera/gallery Dataverse artifact workflows.
>-
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and continue. USE WHEN the user asks to add a data source, add a connection, add an API, add a connector, connect to SharePoint / Dataverse / SQL / Excel / OneDrive / Teams / Office 365, or any similar request to make new data available to the app. DO NOT USE WHEN the user is asking to list or describe existing data sources — call list_data_sources or list_apis directly instead.
Use when adding an unspecified data source to an Expo/React Native Power Apps mobile app; routes to Dataverse, SharePoint, or another connector.
Use when the user wants to add Dataverse tables (existing or new) to a Power Apps mobile app, extend an existing Dataverse table with new columns, or apply an approved data model plan.