# What you need before you build

> A matrix from what you are trying to build to the credential or connector that has to exist first.

Most first-time frustration is a wizard that will not finish because something
had to exist first. This page is that list.

## By what you are building

| What you want to build | Must exist first | Where |
|---|---|---|
| A workflow on a schedule that calls a public endpoint | Nothing | — |
| A workflow on a schedule that calls an API needing a key | An outbound HTTP connector | **Connectors → Outbound** |
| A workflow started by an external system pushing data | A service account with the `webhooks` scope | **Settings → Service Accounts** |
| A workflow that verifies who sent a webhook | An inbound connector with an authentication method | **Connectors → Inbound** |
| A step that calls one documented operation of an API | An API Spec, and usually a connector attached to it | **Connectors → API Specs** |
| A step that reads or writes S3-compatible storage | An outbound Amazon S3 connector | **Connectors → Outbound** |
| A step that queries or writes Snowflake | An outbound Snowflake connector | **Connectors → Outbound** |
| A workflow that stores what it produced | A data model with a primary key | **Warehouse** |
| A dashboard | A data model that already holds records | **Warehouse** |
| A dashboard embedded in someone else's page | Public embedding turned on for that dashboard | The dashboard's **Share** panel |
| A script that reads your data over the API | A service account with `api_read` | **Settings → Service Accounts** |
| A script that writes over the API | A service account with `api_write` | **Settings → Service Accounts** |

## By who can create it

| Thing | Who can create it |
|---|---|
| Workflows, data models, dashboards | Any active member |
| Connectors and API Specs | Any active member |
| Service accounts | Owners and admins only |
| Workspaces, invitations, role changes | Owners and admins only |

If a **New…** button is missing where this page says it should be, your role is
the likely reason. See [Members and
roles](/help/account-access/members-and-roles).

## Plan limits worth knowing about

Your plan caps several of these. The refusal always names which one — *Service
accounts limit reached (5 of 5 in use)* — and it is never a problem with what
you typed. Current usage is on **Settings → Organization**.

Commonly hit first: active workflows, connectors, data models, and service
accounts.

## The order that works

1. Create the credential or connector the workflow will need.
2. Create the data model, if the workflow is going to keep anything.
3. Build the workflow, choosing that connector or service account in the
   wizard.
4. Save, then activate.
5. Build the dashboard once records exist.

Doing it in this order means no wizard ever stops you halfway. Each of those
wizards can send you off to create the missing thing in a new tab, but you have
to reopen the wizard afterwards for the new item to appear in its list.
