Aha! users often wish to use the Aha! REST API to create a custom integration with a third-party system. This guide provides an overview of the building blocks available for synchronizing data with Aha!
Before writing your own integration, you should review our official list of integrations -- we already have integrations with a number of third-party tools and development systems. You may also wish to review our ideas portal to find out whether we are already planning or developing an integration with your desired system.
Aha! REST API: The Aha! REST API allows you to programmatically fetch, create, update, and delete most Aha! records. By itself, it is useful for integrations that create a record in Aha! in response to some external action (for example, creating an idea in Aha! when a user takes an action in your third-party system). It is also useful for integrations that wish to pull structured data from Aha! and perform data analysis or present a dashboard or other treatment.
Activity webhook: The activity webhook provides real-time information about updates to Aha! records by sending a POST request to a specified URL every time a record is created, updated, or destroyed (with a five-minute delay). To reduce noise, you may configure the activity webhook to only send updates for certain types of records/fields, or to only send updates for records in particular products. The activity webhook is useful for creating two-way integrations with Aha!; you can implement a web service that receives updates from the activity webhook via HTTP, reads/translates the webhook body, and then makes an API call to your third-party system to make the appropriate update. The activity webhook may also be useful for data aggregation and analysis, as it provides a real-time "firehose" of updates.
Combining the two: For a full, two-way integration between Aha! and a third-party system, you will likely want to use both the Aha! REST API and an activity webhook. When changes are made in Aha!, the activity webhook will send an update, and your code can consume the update and work out the appropriate change in your third-party system. When a record in the third-party system is updated, you can call the Aha! REST API to propagate the change to a related record in Aha!