Skip to main content

Aha! Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to an Aha! location.
aha_api.png

Aha!

Create an Aha! Destination

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

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

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

    Aha! destinations can also be configured manually, allowing you to send data to Aha! 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 Aha! endpoints. Each template is designed specifically for the corresponding Aha! 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 feature

    This endpoint creates a new feature within a specific release. Use it to programmatically push work items into Aha! from an upstream system — for example, turning intake requests or backlog items from another tool into Aha! features.

    • Enter the release ID in the Release ID field. This field is required and identifies the release that the new feature will be created in. Release IDs can be obtained from the Aha! data source endpoints.
    • Each upstream record is sent as the JSON body of the POST call. Use the Nexla transform layer to shape upstream attributes into the field names expected by Aha!, such as name and the feature details.

    For the full set of supported feature attributes, see the Aha! features API reference.

    Create an epic

    This endpoint creates a new epic within a specific release. Use it to group related features under a larger body of work as records flow in from upstream systems.

    • Enter the release ID in the Release ID field. This field is required and identifies the release that the new epic will be created in.
    • Each upstream record is sent as the JSON body of the POST call. Map upstream attributes to the epic field names expected by Aha!, such as name.

    For the full set of supported epic attributes, see the Aha! epics API reference.

    Create an epic in the default release

    This endpoint creates a new epic in the default release of a specific product. Use it when you want to add epics to a product without targeting a particular release.

    • Enter the product ID in the Product ID field. This field is required and identifies the product whose default release will receive the new epic.
    • Each upstream record is sent as the JSON body of the POST call. Map upstream attributes to the epic field names expected by Aha!.

    Update an epic

    This endpoint updates an existing epic. Use it to sync changes from a downstream system of record back into Aha! — for example, status, name, or custom field updates.

    • Enter the epic ID in the Epic ID field. This field is required and identifies the epic to update. To drive the destination from an upstream source, map the upstream record's epic identifier into this field.
    • The body of each PUT call is the upstream record (as JSON). Include only the fields that should be changed; omitted fields are left untouched.

    Delete an epic

    This endpoint deletes an epic by ID. The deletion is permanent, so validate upstream data carefully before activating this destination.

    • Enter the epic ID in the Epic ID field. This field is required and identifies the epic to delete.

    Because deletion is irreversible, consider routing through a Nexla transform that filters to only the epics that should genuinely be deleted before activating this destination.

    Create a goal

    This endpoint creates a new goal under a specific product. In Aha!, a goal defines a strategic objective that aligns work. Use this endpoint to push goals into Aha! from upstream planning systems.

    • Enter the product ID in the Product ID field. This field is required and identifies the product that the new goal will be created in.
    • Each upstream record is sent as the JSON body of the POST call. Map upstream attributes to the goal field names expected by Aha!, such as name.

    For the full set of supported goal attributes, see the Aha! goals API reference.

    Update a goal

    This endpoint updates an existing goal within a product. Use it to keep Aha! goals in sync with a downstream system of record.

    • Enter the product ID in the Product ID field. This field is required and identifies the product that contains the goal.
    • Enter the goal ID in the Goal ID field. This field is required and identifies the goal to update.
    • The body of each PUT call is the upstream record (as JSON). Include only the fields that should be changed; omitted fields are left untouched.

    Create an initiative

    This endpoint creates a new initiative under a specific product. In Aha!, an initiative represents a strategic project that can span multiple releases. Use this endpoint to push initiatives into Aha! from upstream systems.

    • Enter the product ID in the Product ID field. This field is required and identifies the product that the new initiative will be created in.
    • Each upstream record is sent as the JSON body of the POST call. Map upstream attributes to the initiative field names expected by Aha!, such as name.

    For the full set of supported initiative attributes, see the Aha! initiatives API reference.

    Update an initiative

    This endpoint updates an existing initiative within a product. Use it to keep Aha! initiatives in sync with a downstream system of record.

    • Enter the product ID in the Product ID field. This field is required and identifies the product that contains the initiative.
    • Enter the initiative ID in the Initiative ID field. This field is required and identifies the initiative to update.
    • The body of each PUT call is the upstream record (as JSON). Include only the fields that should be changed; omitted fields are left untouched.

    Create a custom table record

    This endpoint creates a new record in a custom table for a specific product. Custom tables let teams model organization-specific data alongside standard Aha! records. Use this endpoint to write that custom data into Aha! from upstream systems.

    • Enter the product ID in the Product ID field. This field is required and identifies the product that contains the custom table.
    • Enter the custom table key in the Custom Table Key field. This field is required and identifies the specific custom table within the product.
    • Each upstream record is sent as the JSON body of the POST call. Map upstream attributes to the custom field keys defined for the table.

    Create a team

    This endpoint creates a new team in the account. In Aha!, teams organize users for collaborative work. Use this endpoint to provision teams in Aha! from an upstream HR or identity system.

    • No endpoint-specific parameters are required. Each upstream record is sent as the JSON body of the POST call. Map upstream attributes to the team field names expected by Aha!, such as name.

    For the full set of supported team attributes, see the Aha! teams API reference.

Configure Manually

Aha! destinations can be manually configured to send data to any valid Aha! API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Aha! API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Aha! API from the Method pulldown menu. Use POST to create records, PUT to update existing records, and DELETE to remove records.

Data Format

  1. Select the format in which the Nexset data will be sent to the Aha! API from the Content Format pulldown menu. The Aha! API expects application/json, so JSON is the appropriate format for most operations. Nexla will automatically convert the data to the selected format for each API call.

API Endpoint URL

  1. Enter the URL of the Aha! API endpoint to which you want to send the Nexset data in the URL field. Aha! API endpoints follow the format https://<account-domain>.aha.io/api/v1/<resource> — for example, https://mycompany.aha.io/api/v1/releases/<release-id>/features. For update operations, include the ID of the object to be updated at the end of the URL.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include any headers already present in the credentials. The Aha! Authorization header is handled automatically by Nexla based on your credential configuration.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Aha! destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings—click on an algorithm listed below to view instructions for configuring these settings.

    Property Inside JSON Object

    1. Enter the name of the JSON property that should contain the batched records in the Property Name field.
    2. If any additional properties should be included in the request, enter the properties in the Other Props field in JSON format.

    Code

    1. Enter the code that will be used to create the batched request in the code editor below the Grouping Algorithm field.

Most Aha! write endpoints create or update a single record per call. Record batching is best suited to custom endpoints that accept multiple records in one request — confirm the target endpoint supports batched payloads before enabling this option.

Response Webhook

Optional

Nexla can automatically send the response received from the Aha! API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call — for example, the ID and URL that Aha! assigns to a newly created feature or epic.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Aha! API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Aha! API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Aha! API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to Aha!, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to Aha! until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.