Harvest

Create and list time entries in Harvest. In Appbricx, your workflows and server functions call it by name once it is connected.

What you can do

11 actions, each one call from a workflow or a server function. Triggers come from your app: a row changing, a schedule or a webhook.

  • Get Time Entriesget_time_entries
    Fetches Time Entries
  • Get Clientsget_clients
    Fetches Clients
  • Get Estimatesget_estimates
    Fetches Estimates
  • Get Expensesget_expenses
    Fetches expenses
  • Get Invoicesget_invoices
    Fetches invoices
  • Get Projectsget_projects
    Fetches projects
  • Get Rolesget_roles
    Fetches Roles
  • Get Tasksget_tasks
    Fetches Tasks
  • Get Usersget_users
    Fetches Users
  • Uninvoiced Reportreports-uninvoiced
    Uninvoiced hours and expenses for all billable projects
  • Custom API Callcustom_api_call
    Make a custom API call to a specific endpoint

Set it up

About two minutes, once per project or once for the whole workspace.

  1. Open Integrations in the builder

    Backend panel, Integrations tab, then Harvest. To connect it for every project, use Workspace settings, Integrations.

  2. Add your credentials

    An API key (or token) from your Harvest account, pasted once. It is stored encrypted and only read on the server when an action runs.

    • API key From Harvest's settings
  3. Call an action

    From a workflow, by integration id and action name. The call answers with success, output and, when it fails, the reason.

    Workflow
    // .workflow.js (native ctx)
    export async function run(ctx) {
      const res = await ctx.integrations.invoke("harvest", "get_time_entries", {});
      if (!res.success) throw new Error(res.error);
      ctx.log.info("Harvest answered", { output: res.output });
    }

Harvest and its logo are trademarks of their owner, shown only to identify the service this integration connects to. Their use does not imply endorsement by, or affiliation with, that company.

Connect Harvest once. Every workflow can use it.