Skip to main content

Harvest Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow, DB-CDC, Spark ETL, or Replication data flow that sends data to a Harvest location.
harvest_api.png

Harvest

Create a Harvest Destination

  1. Click the + icon on the Nexset that will be sent to the Harvest destination, and select the Send to Destination option from the menu.

  2. Select the Harvest connector from the list of available destination connectors. Then, select the credential that will be used to connect to the Harvest organization, and click Next; or, create a new Harvest credential for use in this flow.

  3. In Nexla, Harvest destinations can be created using pre-built endpoint templates, which expedite destination setup for common Harvest endpoints. Each template is designed specifically for the corresponding Harvest endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Harvest destinations can also be configured manually, allowing you to send data to Harvest endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Harvest endpoints. Each template is designed specifically for the corresponding Harvest endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Create a Resource

    Creates a new resource for the client.

    • Select or enter the resource type you want to create from the Resource Type field. Available resource types include Projects, Invoices, Expenses, Time entries, and Tasks. You can also add custom resource types if needed. The default value is projects if not specified. The resource type determines which type of resource will be created in your Harvest account.
    • The endpoint uses POST requests to https://api.harvestapp.com/api/v2/{resource_type} where {resource_type} is the Resource Type you provide. The endpoint URL is automatically constructed based on the Harvest API base URL and the resource type.
    • The endpoint sends data from your Nexset as the request body in JSON format. The request body is automatically formatted according to the schema fields and data mapping you configure. Each record in your Nexset will be sent as a JSON object containing the resource data to create.
    • Batch mode is disabled by default for this endpoint. Each record in your Nexset will be sent as a separate API request to create a resource. If you need to create multiple resources, you can send multiple records, but each will be processed as a separate request.
    • This endpoint does not automatically create a data source to track the responses received from the Harvest API after each call.

    The request body must be properly formatted JSON that matches the Harvest API specification for creating resources. The endpoint requires Personal Access Token authentication via the Authorization: Bearer {token} header and Harvest-Account-ID: {account_id} header, which are handled automatically by your credential configuration. The Content-Type: application/json header is automatically included in requests. Available resource types include Projects, Invoices, Expenses, Time entries, and Tasks. You can also add custom resource types if needed. Batch mode is disabled by default, so each record will be sent as a separate request. For detailed information about creating resources, including required fields, field names, and request formats, see the Harvest API documentation.

    Delete a resource By Id

    Deletes an existing resource by Id from user account.

    • Select or enter the resource type you want to delete from the Resource Type field. Available resource types include Projects, Invoices, Expenses, Time entries, and Tasks. You can also add custom resource types if needed. The default value is projects if not specified. The resource type determines which type of resource will be deleted from your Harvest account.
    • Select the dataset attribute that corresponds to the resource ID you wish to delete from the Resource ID dataset attribute field. This should be the attribute in your Nexset that contains the unique identifier for the resource you want to delete.
    • The endpoint uses DELETE requests to https://api.harvestapp.com/api/v2/{resource_type}/{resource_id} where {resource_type} is the Resource Type you provide and {resource_id} is the Resource ID from the dataset attribute you specify. The endpoint URL is automatically constructed based on the Harvest API base URL, the resource type, and the resource ID from your Nexset data.
    • This endpoint automatically creates a data source to track the responses received from the Harvest API after each deletion call.

    The endpoint requires Personal Access Token authentication via the Authorization: Bearer {token} header and Harvest-Account-ID: {account_id} header, which are handled automatically by your credential configuration. The Content-Type: application/json header is automatically included in requests. Available resource types include Projects, Invoices, Expenses, Time entries, and Tasks. You can also add custom resource types if needed. The resource ID is extracted from the dataset attribute you specify, so make sure your Nexset contains the resource ID in the specified attribute. This endpoint automatically creates a data source to track deletion responses. For detailed information about deleting resources, including required fields and request formats, see the Harvest API documentation.

Configure Manually

Harvest destinations can be manually configured to send data to any valid Harvest API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates or when you need custom API configurations.

With manual configuration, you can also create more complex Harvest destinations, such as destinations that use custom request headers, different HTTP methods, or custom data formatting.

Content Format

  1. Select the format in which the Nexset data will be sent to the Harvest API from the Content Format pulldown menu. Nexla will automatically convert the data to the selected format for each API call. The Harvest API typically uses JSON format for request bodies.

API Endpoint URL

  1. Enter the URL of the Harvest API endpoint to which you want to send the Nexset data in the URL field. This should be the complete URL including the protocol (https://) and any required path parameters. Harvest API endpoints typically follow the pattern https://api.harvestapp.com/api/v2/{endpoint_path}.

Ensure the API endpoint URL is correct and accessible with your current credentials. You can test the endpoint using the Test button after configuring the URL. The endpoint requires Personal Access Token authentication via the Authorization: Bearer {token} header and Harvest-Account-ID: {account_id} header, which are handled automatically by your credential configuration. For detailed information about Harvest API endpoints and available APIs, see the Harvest API documentation.