# Provider wiring

URL: /systems/integrations/provider-wiring · Id: `process:provider-wiring`

> Provider wiring connects a new Startup to the default provider of every capability it uses.

Provider wiring connects a new [Startup](/business/nouns/startup) to the default provider of every capability it uses.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each capability the Startup uses has a tested Integration and a named fallback provider. |
| Reads | [Startup](/business/nouns/startup) |
| Leaves | [Integration](/business/nouns/integration) |
| Runs in | Each Startup |

## Accountable
[Engineering Lead](/agents/engineering/engineering-lead), [Engineering Team](/agents/engineering).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Connect providers](/systems/integrations/provider-wiring/connect-providers) | on `Startup.created` | [Engineering Team](/agents/engineering) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Connect providers](/systems/integrations/provider-wiring/connect-providers) | 1. List the capabilities the Startup’s Products use. | [Integration Engineer](/agents/engineering/integration-engineer) | [Capability.list](/business/nouns/capability/list) | None |
| [Connect providers](/systems/integrations/provider-wiring/connect-providers) | 2. Create an Integration with the default provider for each one. | [Integration Engineer](/agents/engineering/integration-engineer) | [Integration.create](/business/nouns/integration/create) | None |
| [Connect providers](/systems/integrations/provider-wiring/connect-providers) | 3. Sync each Integration once to test it. | [Integration Engineer](/agents/engineering/integration-engineer) | [Integration.sync](/business/nouns/integration/sync) | None |
| [Connect providers](/systems/integrations/provider-wiring/connect-providers) | 4. Record each Integration’s fallback provider. | [Integration Engineer](/agents/engineering/integration-engineer) | [Integration.update](/business/nouns/integration/update) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | On `Startup.created` | Starts [Connect providers](/systems/integrations/provider-wiring/connect-providers) |
| Out | `Integration.created` | Raised by step 2 of [Connect providers](/systems/integrations/provider-wiring/connect-providers) |
| Out | [`Integration.synced`](/business/events/Integration.synced) | Raised by step 3 of [Connect providers](/systems/integrations/provider-wiring/connect-providers) |
| Out | `Integration.updated` | Raised by step 4 of [Connect providers](/systems/integrations/provider-wiring/connect-providers) |

## Plays
No Play names this Process.

## Controls
- [Upstream review](/systems/trust-and-governance/controls/upstream-review)

## Settings
None.

## Failure
A failed step retries; when retries run out, the Action goes to the [Engineering Lead](/agents/engineering/engineering-lead).

| Step | On failure |
| --- | --- |
| [Connect providers](/systems/integrations/provider-wiring/connect-providers) 3. Sync each Integration once to test it. | Goes to the [Engineering Lead](/agents/engineering/engineering-lead). |

## Loop
No loop: the path is never randomized, because it serves [Upstream review](/systems/trust-and-governance/controls/upstream-review).

## Code

**Ask**

```text
Turn on provider wiring
```

**API**

```bash
curl -X POST https://api.sb/leaseline.app/processes/process_1/enable \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

**SDK**

```ts
import { $ } from 'startup-builder'

await $.Process.enable({ process: 'process_1' })
```

**CLI**

```bash
npx startup-builder do Process.enable --json '{"process":"process_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Process.enable({ process: 'process_1' })"
  }
}
```

## Enable
On by default for every Product Template. [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

## Example
A new invoice-parsing API uses email and payments. [Connect providers](/systems/integrations/provider-wiring/connect-providers) creates an [Integration](/business/nouns/integration) for each, runs one test call through both, and records a fallback provider for each before launch.