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

# Harvest

> What agents can do in Harvest with standard access, and how to connect, limit, and disconnect Harvest.

Connect Harvest so your agents can work in your Harvest account.

## Access levels

Harvest has one level. The connect window shows it as **Default** and describes it as "Standard access." Agents can use all 57 Harvest actions.

You cannot choose a narrower level for Harvest. You can block single agents with **No access** under **Per-agent access**.

The Harvest sign-in page asks you to approve full access to your account. This is expected. Squad does not narrow the sign-in, and standard access does not limit which Harvest actions agents can use.

## What agents can do

The summary below groups the Harvest actions into plain tasks. The full list after it names every action, grouped by what the action works on. You do not need to name actions. Ask in plain words, and the agent searches for the matching action.

<Tip>**Find an action.** Open the list and use your browser's find (Ctrl+F, or Cmd+F on a Mac) with a word from the task or part of a slug. Or ask your agent in plain words, for example "What can you do in my Harvest account?" The agent can search the Harvest actions for you.</Tip>

Each action shows its name, a one-line description where the Harvest action catalog has one, and its slug. The slug is the ID that agents use when they call the action.

* View, delete, and send messages
* View, create, update, and delete categories
* View, create, update, and delete clients
* View, create, update, and delete invoices
* View, create, update, and delete projects
* View, create, update, and delete tasks
* View, create, update, and delete time entries
* View, create, update, and delete users
* View, create, update, and delete contacts
* View, create, update, and delete estimates
* View, create, and delete payments
* View and update companies

<AccordionGroup>
  <Accordion title="All 57 Harvest actions">
    <AccordionGroup>
      <Accordion title="Categories (5)">
        | Action                        | What it does                                                  | Slug                                    |
        | ----------------------------- | ------------------------------------------------------------- | --------------------------------------- |
        | Create estimate item category | Create a new estimate item category in Harvest.               | `HARVEST_CREATE_ESTIMATE_ITEM_CATEGORY` |
        | Create invoice item category  | Create a new invoice item category.                           | `HARVEST_CREATE_INVOICE_ITEM_CATEGORY`  |
        | Delete invoice item category  | Delete an invoice item category from Harvest.                 | `HARVEST_DELETE_INVOICE_ITEM_CATEGORY`  |
        | List invoice item categories  | Retrieve invoice item categories.                             | `HARVEST_LIST_INVOICE_ITEM_CATEGORIES`  |
        | Update estimate item category | Updates an existing estimate item category's name in Harvest. | `HARVEST_UPDATE_ESTIMATE_ITEM_CATEGORY` |
      </Accordion>

      <Accordion title="Clients (5)">
        | Action        | What it does                                    | Slug                    |
        | ------------- | ----------------------------------------------- | ----------------------- |
        | Create client | Create a new client.                            | `HARVEST_CREATE_CLIENT` |
        | Delete client | Delete a client.                                | `HARVEST_DELETE_CLIENT` |
        | Get client    | Retrieves a specific client by ID from Harvest. | `HARVEST_GET_CLIENT`    |
        | List clients  |                                                 | `HARVEST_LIST_CLIENTS`  |
        | Update client | Update an existing client.                      | `HARVEST_UPDATE_CLIENT` |
      </Accordion>

      <Accordion title="Companies (2)">
        | Action              | What it does                                                                                        | Slug                          |
        | ------------------- | --------------------------------------------------------------------------------------------------- | ----------------------------- |
        | Get company info    | Retrieves detailed information about the company associated with the authenticated Harvest account. | `HARVEST_GET_COMPANY_INFO`    |
        | Update company info | Updates company time tracking settings in Harvest.                                                  | `HARVEST_UPDATE_COMPANY_INFO` |
      </Accordion>

      <Accordion title="Contacts (4)">
        | Action                | What it does                                       | Slug                            |
        | --------------------- | -------------------------------------------------- | ------------------------------- |
        | Create client contact | Create a new client contact.                       | `HARVEST_CREATE_CLIENT_CONTACT` |
        | Delete client contact | Permanently deletes a client contact from Harvest. | `HARVEST_DELETE_CLIENT_CONTACT` |
        | List client contacts  |                                                    | `HARVEST_LIST_CLIENT_CONTACTS`  |
        | Update client contact | Update a client contact.                           | `HARVEST_UPDATE_CLIENT_CONTACT` |
      </Accordion>

      <Accordion title="Estimates (4)">
        | Action          | What it does                        | Slug                      |
        | --------------- | ----------------------------------- | ------------------------- |
        | Create estimate | Create a new estimate.              | `HARVEST_CREATE_ESTIMATE` |
        | Delete estimate | Delete an estimate.                 | `HARVEST_DELETE_ESTIMATE` |
        | Get estimate    | Retrieve a specific estimate by ID. | `HARVEST_GET_ESTIMATE`    |
        | Update estimate | Update an existing estimate.        | `HARVEST_UPDATE_ESTIMATE` |
      </Accordion>

      <Accordion title="Expense categories (1)">
        | Action                  | What it does | Slug                              |
        | ----------------------- | ------------ | --------------------------------- |
        | List expense categories |              | `HARVEST_LIST_EXPENSE_CATEGORIES` |
      </Accordion>

      <Accordion title="Expenses (2)">
        | Action         | What it does                | Slug                     |
        | -------------- | --------------------------- | ------------------------ |
        | Create expense | Create a new expense entry. | `HARVEST_CREATE_EXPENSE` |
        | Update expense | Update an existing expense. | `HARVEST_UPDATE_EXPENSE` |
      </Accordion>

      <Accordion title="Invoices (5)">
        | Action         | What it does                       | Slug                     |
        | -------------- | ---------------------------------- | ------------------------ |
        | Create invoice | Create a new invoice.              | `HARVEST_CREATE_INVOICE` |
        | Delete invoice | Delete an invoice from Harvest.    | `HARVEST_DELETE_INVOICE` |
        | Get invoice    | Retrieve a specific invoice by ID. | `HARVEST_GET_INVOICE`    |
        | List invoices  |                                    | `HARVEST_LIST_INVOICES`  |
        | Update invoice | Update an existing invoice.        | `HARVEST_UPDATE_INVOICE` |
      </Accordion>

      <Accordion title="Messages (6)">
        | Action                  | What it does                                                       | Slug                              |
        | ----------------------- | ------------------------------------------------------------------ | --------------------------------- |
        | Create estimate message | Create a new message for an estimate.                              | `HARVEST_CREATE_ESTIMATE_MESSAGE` |
        | Create invoice message  | Creates a new message for an invoice in Harvest.                   | `HARVEST_CREATE_INVOICE_MESSAGE`  |
        | Delete estimate message | Delete an estimate message.                                        | `HARVEST_DELETE_ESTIMATE_MESSAGE` |
        | Delete invoice message  | Delete a message from an invoice.                                  | `HARVEST_DELETE_INVOICE_MESSAGE`  |
        | List estimate messages  | Lists all messages associated with a specific estimate in Harvest. | `HARVEST_LIST_ESTIMATE_MESSAGES`  |
        | List invoice messages   | List messages associated with a given invoice.                     | `HARVEST_LIST_INVOICE_MESSAGES`   |
      </Accordion>

      <Accordion title="Payments (3)">
        | Action                 | What it does                                       | Slug                             |
        | ---------------------- | -------------------------------------------------- | -------------------------------- |
        | Create invoice payment | Create a new payment on an invoice.                | `HARVEST_CREATE_INVOICE_PAYMENT` |
        | Delete invoice payment | Delete an invoice payment.                         | `HARVEST_DELETE_INVOICE_PAYMENT` |
        | List invoice payments  | List all payments recorded for a specific invoice. | `HARVEST_LIST_INVOICE_PAYMENTS`  |
      </Accordion>

      <Accordion title="Projects (5)">
        | Action         | What it does                               | Slug                     |
        | -------------- | ------------------------------------------ | ------------------------ |
        | Create project | Create a new project in Harvest.           | `HARVEST_CREATE_PROJECT` |
        | Delete project | Delete a project.                          | `HARVEST_DELETE_PROJECT` |
        | Get project    | Retrieve a specific Harvest project by ID. | `HARVEST_GET_PROJECT`    |
        | List projects  | Results span multiple pages.               | `HARVEST_LIST_PROJECTS`  |
        | Update project | Update an existing project.                | `HARVEST_UPDATE_PROJECT` |
      </Accordion>

      <Accordion title="Tasks (5)">
        | Action      | What it does                                                                           | Slug                  |
        | ----------- | -------------------------------------------------------------------------------------- | --------------------- |
        | Create task | Creates a new task in Harvest.                                                         | `HARVEST_CREATE_TASK` |
        | Delete task | Delete a task.                                                                         | `HARVEST_DELETE_TASK` |
        | Get task    | Retrieve a specific task by ID.                                                        | `HARVEST_GET_TASK`    |
        | List tasks  | Response includes total\_pages to iterate all pages when task count exceeds per\_page. | `HARVEST_LIST_TASKS`  |
        | Update task | Update an existing task.                                                               | `HARVEST_UPDATE_TASK` |
      </Accordion>

      <Accordion title="Time entries (5)">
        | Action            | What it does                        | Slug                        |
        | ----------------- | ----------------------------------- | --------------------------- |
        | Create time entry | Create a new time entry.            | `HARVEST_CREATE_TIME_ENTRY` |
        | Delete time entry | Delete a time entry.                | `HARVEST_DELETE_TIME_ENTRY` |
        | Get time entry    | Retrieve a single time entry by ID. | `HARVEST_GET_TIME_ENTRY`    |
        | List time entries | Retrieve a list of time entries.    | `HARVEST_LIST_TIME_ENTRIES` |
        | Update time entry | Update an existing time entry.      | `HARVEST_UPDATE_TIME_ENTRY` |
      </Accordion>

      <Accordion title="Users (5)">
        | Action      | What it does                                                                          | Slug                  |
        | ----------- | ------------------------------------------------------------------------------------- | --------------------- |
        | Create user | Creates a new user in Harvest and sends an invitation email to the specified address. | `HARVEST_CREATE_USER` |
        | Delete user | Delete a user.                                                                        | `HARVEST_DELETE_USER` |
        | Get user    | Retrieve a specific user by ID.                                                       | `HARVEST_GET_USER`    |
        | List users  |                                                                                       | `HARVEST_LIST_USERS`  |
        | Update user | Update an existing user.                                                              | `HARVEST_UPDATE_USER` |
      </Accordion>
    </AccordionGroup>
  </Accordion>
</AccordionGroup>

## Connect Harvest

Before you start:

* You need a Harvest account that you can sign in to.
* Your Squad subscription must be active. Squad does not connect apps while the subscription is not active.

<Steps>
  <Step title="Open Integrations">
    Open **Settings** > **Integrations**.
  </Step>

  <Step title="Add an integration">
    On the **Connected apps** tab, click **+ Add integration**.
  </Step>

  <Step title="Find Harvest">
    Find **Harvest** in the catalog and click it. You can type the name in **Search the catalog…**.
  </Step>

  <Step title="Keep the default level">
    Under **Default scope**, keep **Default**. It is the only option.
  </Step>

  <Step title="Click Connect Harvest">
    Click **Connect Harvest**. The Harvest sign-in page opens in a new tab.
  </Step>

  <Step title="Sign in to Harvest">
    Sign in to Harvest and approve the request.
  </Step>
</Steps>

Check that it works: Harvest shows under **YOUR CONNECTIONS**, with a row for the account and its access level.

## Set access for one agent

Every agent can use the account unless you block it.

1. Under **YOUR CONNECTIONS**, open the account menu (⋯) on the Harvest account.
2. Click **Manage scope**.
3. Under **Per-agent access**, find the agent.
4. Choose **No access** to block the agent. Choose **Default (Default)** to allow it again.
5. Click **Save access**.

Changes apply from the agent's next call. An agent with **No access** does not see the account.

## Use more than one Harvest account

Click **+ Account** on the Harvest card to connect another account. Agents use the primary account unless they are asked to use a specific one.

* After you click **+ Account**, follow the connect steps above.
* The first account you connect becomes the primary account. It shows **★ PRIMARY**.
* To change the primary account, open the account menu (⋯) and click **Make primary**.
* To tell accounts apart, open the account menu (⋯) and click **Rename**.

## Reconnect or disconnect

Reconnect when the connection has expired, or when you need to change what the account can reach on the Harvest side:

1. Open the account menu (⋯) and click **Reconnect**.
2. Click **Reauthorize on Harvest**.
3. Sign in to Harvest and approve the request.

Reconnect signs in to the same account again. It does not add a second connection.

Open the account menu (⋯) on the Harvest account and click **Disconnect**. Agents lose access to that account at once.

<Warning>**Disconnect** acts at once, with no confirmation step. If it was the primary account, another connected Harvest account becomes primary.</Warning>

## Costs

Harvest actions do not use Squad credits. Connected apps never use credits. For what does use credits, see [What Squad costs](/docs/costs).

## Troubleshooting

An agent says it has no access to Harvest, or it does not see the account.

* Cause: the agent is set to **No access** under **Per-agent access**, or the account is not connected.
* Fix: open **Manage scope** and change the agent's row. If the account is missing, connect it again.

Connecting or saving fails with "Your subscription isn't active."

* Cause: your Squad subscription is not active.
* Fix: resubscribe. See [Manage your subscription](/docs/billing).

An agent says the Harvest connection has expired.

* Cause: the sign-in for that account is no longer valid.
* Fix: use **Reconnect** on the account.

## Common questions

<AccordionGroup>
  <Accordion title="Can I limit what agents can do in Harvest?">
    You cannot choose a narrower level for Harvest. You can block single agents with **No access** under **Per-agent access**.
  </Accordion>

  <Accordion title="Can I connect more than one Harvest account?">
    Click **+ Account** on the Harvest card to connect another account. Agents use the primary account unless they are asked to use a specific one.
  </Accordion>

  <Accordion title="How do I disconnect Harvest?">
    Open the account menu (⋯) on the Harvest account and click **Disconnect**. Agents lose access to that account at once.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Connect apps" icon="plug" href="/docs/integrations" />

  <Card title="Add an MCP server or an API key" icon="server" href="/docs/custom-integrations">
    Use this when an action you need is not in this app.
  </Card>
</CardGroup>
