> ## Documentation Index
> Fetch the complete documentation index at: https://learn.workflow.dog/llms.txt
> Use this file to discover all available pages before exploring further.

# Team and permissions

> Invite teammates and control who can view or change a project.

Project membership controls access to every workflow, run, variable, and
integration linked to a project. WorkflowDog currently has two project roles:
**Viewer** and **Editor**.

## Roles

| Capability                                      | Viewer | Editor |
| ----------------------------------------------- | :----: | :----: |
| View workflows and project settings             |    ✓   |    ✓   |
| Inspect workflow runs, outputs, and errors      |    ✓   |    ✓   |
| View project variables and integration accounts |    ✓   |    ✓   |
| Build, rename, enable, or delete workflows      |        |    ✓   |
| Clear variables or manage integrations          |        |    ✓   |
| Invite, remove, or change teammate roles        |        |    ✓   |
| Manage billing or delete the project            |        |    ✓   |

<Warning>
  Editor is a fully trusted role. There is no separate Owner or Admin permission
  tier: project creation does not give the creator protected permissions that
  other Editors lack.
</Warning>

The server checks permissions for project, workflow, and workflow-run
operations. Hiding a control in the dashboard is not the only access check.

## Invite a teammate

<Steps>
  <Step title="Open Team">
    From the project dashboard, open **Team**.
  </Step>

  <Step title="Send the invitation">
    Select **Invite someone to your project**, enter their email address, and send
    the invitation. The project must have an available seat.
  </Step>

  <Step title="Accept with the invited email">
    The recipient follows the link in the invitation email. If they do not have a
    WorkflowDog account, they must create one first. They must be signed in with
    the exact email address that received the invitation.
  </Step>

  <Step title="Review their role">
    New invitations currently join as **Editors**. If the teammate only needs
    read access, change them to **Viewer** after they accept.
  </Step>
</Steps>

<Note>
  A pending invitation remains on the Team page until it is accepted or an
  Editor cancels it. Sending a second invitation to the same address while one
  is pending is not allowed.
</Note>

## Change a role

Open a teammate's menu on the **Team** page and choose **Make Viewer** or
**Make Editor**.

Role changes take effect at the project boundary:

* A Viewer retains access to project data but loses write access.
* An Editor gains write access across workflows, variables, integrations,
  billing, and team management.
* Roles in one project do not grant access to another project.

You cannot change your own role from your own member card. Ask another Editor
to change it.

## Remove a teammate

Choose **Remove from project** from the member's menu and confirm. Removal
revokes their project access; it does not delete workflows or other resources
they created.

To restore access later, send a new invitation.

## Manage seats

The Team page compares accepted members with the project's seat allowance.
Pending invitations do not replace an existing member. When the project has
reached its limit, use **Usage & Billing** or contact WorkflowDog about
additional team seats.

## Protect sensitive project data

Viewers can inspect variable values, run inputs and outputs, and connected
account metadata. Do not use project membership as a way to expose only one
workflow or only part of a workflow.

For the same reason:

* Do not store API keys or passwords in project variables.
* Review run outputs before inviting someone who should not see processed
  customer data.
* Give Editor access only when the person should be able to alter or delete
  project resources.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The invitation link says Invitation not found">
    Sign in with the exact email address that was invited. The invitation also
    becomes invalid after an Editor cancels it or after it has already been
    accepted.
  </Accordion>

  <Accordion title="I cannot invite another teammate">
    You need Editor access and an available project seat. The invite also fails
    when the email is already a member or already has a pending invitation.
  </Accordion>

  <Accordion title="A Viewer cannot save a workflow">
    This is expected. Viewer access is read-only at the API layer. Change the
    teammate to Editor only if they should be able to modify the entire
    project.
  </Accordion>
</AccordionGroup>
