To avoid redundant third-party notifications, changes to the text editor are delayed by at least five minutes, waiting for five minutes after the most recent change.

Aha! Ideas | Integrate with activity webhooks

If you don't see an Aha! Ideas integration with your tool of choice, you can use an activity webhook to send workspace or account data from your Aha! Ideas account to a third-party tool.

Activity webhooks do not send all data for a record when a field is updated. They only send over the fields that were updated.

There are three types of webhook integrations:


User permissions

Plan type


Integration webhooks

  • Workspace


Generic HTTP integration

Activity webhooks

  • Account

  • Workspace


Activity stream from Aha! Roadmaps to a third-party tool

Security webhooks

  • Account


Send security-related events from Aha! Roadmaps to a SIEM system

Click any of the following links to skip ahead:


Integration type

  • One-way (Aha! Ideas to your third-party tool)

Aha! Ideas level

  • Account level

  • Workspace level

Required user permissions: Configuration

Required user permissions: Use integration

Associated records

  • Ideas


Enable the integration

You can create activity webhook integrations at either the account or workspace level by navigating to Settings ⚙️ Account Integrations or Settings ⚙️ Workspace Integrations, respectively. Administrators with customization privileges can create account-level integrations and workspace owners can create workspace-level integrations.

At either level, the process is largely the same.

  1. Select Activity webhook from the list of available integrations.

  2. Enter the Hook URL for your webhook.

  3. Select which activity Aha! Ideas should send through the activity webhook. At the account level, choose from Workspaces, Record types, and Fields. At the workspace level, choose from Record types, and Fields. Click Add activity to add the activity, and the large X to remove an activity from the list.

  4. Select which users' activity will be transmitted through the webhook. This is an optional step, useful if you only want to send activity related to certain users. Click Add user to add a user's activity to the list, and the large X to remove a user's activity from the list.

  5. Click the Enable checkbox, and add the webhook to your third-party tool to begin sending activity out of your Aha! Ideas account.

All activity waits five minutes before posting to the Activity webhook. This is to keep communication concise and avoid excessive messaging when a user is performing multiple edits at once.



Activity webhooks coming from your Aha! account are encrypted via SSL. This can be used to verify the authenticity of any requests.


Troubleshoot the integration

Having trouble with your activity webhook? Click Log messages below the webhook's integration settings to open the integration's audit log and use the log messages to diagnose and fix the problem.


JSON fields

The audit webhook provides a live stream of events occuring within Aha! to a service that you create and run yourself. This allows custom logic to be implemented by your team to extend Aha!'s capabilities, or provide further auditing to meet regulatory concerns.

Each audit webhook contains a single JSON object, which has the following fields:

  • /event

    • This is always audit.

  • /audit/id

    • This is the numeric, 64-bit ID of the audit record. It will be presented as a string.

  • /audit/audit_action

    • This is the action which was performed. It will be one of create, update, or destroy.

  • /audit/created_at

    • This is the timestamp at which the audit was created.

  • /audit/interesting

    • This field is used internally in the Aha! notification system.

  • /audit/user/id

    • This is the numeric, 64-bit ID of the user or integration who performed this action, cast into a string.

  • /audit/user/name

    • This is the name of the user who performed this action. This may also be the name of the integration which performed the action.

  • /audit/user/email

    • This is the email address of the user who performed this action

  • /audit/user/created_at

    • This is the date which the user in question joined your Aha! account.

  • /audit/user/updated_at

    • This is the date when the user's information was last changed. This field is updated frequently for cache-breaking purposes.

  • /audit/contributors

    • This is an array of user records, similar to the /audit/user field. It represents all of the users whose changes were collated into this audit, for example, if multiple users were collaboratively editing a record at the same time. See the Collation section, below this list of fields.

  • /audit/auditable_type

    • This is the type of record which is being changed. Common values are feature, release, requirement, strategic_imperative (goal), strategic_initiative (initiative), attachment, comment, and note. Objects of every kind in your Aha! account will be represented by these types.

  • /audit/auditable_id

    • This is the numeric, 64-bit ID of the record being changed. It will be formatted as string.

  • /audit/associated_type

    • For some records, such as comments or note records (which hold long-form text descriptions), the auditable id itself is not helpful. The associated record is the record to which to auditable record is attached. For instance, a comment on an idea will result in an audit with an Auditable type of Comment and an Associated type of Idea.

      This field is nullable.

  • /audit/associated_id

    • This is the numeric, 64-bit ID of the associated record record. It will be formatted as string.

      This field is nullable.

  • /audit/changes

    • The changes array collects all of the changes made for this and collated audits.

  • /audit/changes[0]/field_name

    • The field_name parameter indicates the name of the field that was changed.

  • /audit/changes[0]/value

    • The value indicates the new value as a result of these changes.



Your Aha! account is a highly collaborative tool, allowing many users to make updates to a single record at the same time. In cases of long-form text fields, multiple users can even edit the same field at the same time. As a result, the audit records generated by editing a record are collated together after a short interval. This collation process prevents a very large amount of useless and hard to understand audits.

When audit collation happens, the changes for a record will be collapsed into the changes block, and the users whose changes have been merged in will be added to the contributors field.

The audit integration will receive all audits, even those which are later collated into other records.


If you get stuck, please reach out to our Customer Success team. Our team is made up entirely of product experts and responds fast.