Hi everyone! David here from the hotglue team.
Today I am going to show you how you can build an Asana integration for your product in under 3 minutes, without ever referencing the Asana API docs, using hotglue. Before we start, there are a couple things you'll need.
Before we start
If you haven't registered your product as an application for Asana, then you will need to do that first. You can check out how to do that here.
Once you've registered your product as an app, you need to get your OAuth Client ID and OAuth Client Secret for Asana (check the Details View of your app in Asana - it should include the credentials). Once you have these credentials, you are ready to build your integration!
So you have your credentials. And you have your aspiration of building and testing your Asana integration in under 3 minutes. Let's begin on the hotglue Flows Dashboard.
Once at the Flows Dashboard, click the the New Flow button in the top right hand corner.
Now you can define the title, description, and cover image of your flow. Since Asana helps with project management, I decided to call this flow the "Project Management" flow. Once you are done configuring your flow, go ahead and click the "Save and Continue" button.
Configuring the source
You are now on the page where you can select which source you want to enable. You are going to select Asana.
This is where you are going to use those credentials I talked about earlier! From your registered app, you should have been able to get your OAuth Client ID and your OAuth Client Secret. Once you input those into the corresponding fields, click the "Save" button. This will prompt you to log in to Asana.
Go ahead and log in to Asana using your own personal account. This is used so that you can populate hotglue's field mapping feature with potential records you may want to pull (we will get into this in the next couple steps).
Once you are done logging in to your Asana account, hotglue will show that you have successfully linked Asana. Click the "OK" button on the success pop-up. The next step is to decide what data you want to pull from Asana.
To decide which objects you want to pull from Asana, click the "Field Map" button.
For this example, I decided I wanted to pull "Tasks" from Asana, so I typed that in the Field Map editor. To customize the exact objects you want to pull from Asana, you should click the gear icon on the "Tasks" card.
I decided that I want every object related to Tasks, so I selected every available object (the shortcut is click the header of the column which will auto-select everything). I then clicked the arrow in the center to move it over to the "Chosen" column. This is where you decide what objects are necessary for you to pull from the data source.
Now that you have every object that you want in your chosen column, hit the "Confirm" button.
Now go ahead and click the "Save" button. Once the fields window closes, click the "Next" button.
Configuring the target
Now that you are able to pull data from Asana, you need to configure where that data is going! In this example, you are going to configure the AWS S3 target - this means that the data that you are pulling is going to end up in a designated AWS S3 bucket of your choice.
Now it is time to select your destination for your data. In this example, the next step is to click the "Connect" button for the AWS S3 target.
You will be brought to this page, where you should fill in all the necessary credentials for where you want the data to end up. If you don't know where to find your access key, you can learn how to here. Now that you've filled out everything, click the "Save & Continue" button.
Running a job
In hotglue, we define a job as any time a set of data is synced. To trigger jobs in hotglue, you can utilize our API to make requests, create a job within the Admin panel manually, schedule the syncs to happen repeatedly on a schedule (hourly, daily, monthly, etc.) or use all three in conjunction. In this example, you will run a job from the admin side of hotglue so you can see the data hit your destination.
After adding AWS S3 as a source and clicking the "Save & Continue" button, you should end up on the "Jobs" page. It is time to go ahead and click the "+ New Job" button.
You can title this job as you would like. The ability to "reset source state prior to job" should only be used if you want to resync all of the data to your destination, and not just the incremental sync (which only pushes new/changed data to your destination). The very first time you do sync data, all of the data will be new and will all sync to your destination. You should select your source tap as Asana as this is where you want to be pulling your data from in this example. Once you have configured everything, click "Create Job."
Now that you have created the job, click the "OK button". On the "Jobs" page, it will show the status of your job. Once it says that the job has completed, check your data warehouse to see that the data is there.
And that is it! You have successfully created an Asana integration that pipes the data to your data warehouse (in this case, AWS S3) and tested that you have been able to pull the data from Asana to S3.
You are now ready to allow your users to connect their Asana data to your product. To do this, you can embed the hotglue widget into your product. More about that here.
If you would like to see all of this in action, watch this short video we made walking through every step mentioned in this post.
If you have any questions, feel free to email firstname.lastname@example.org or check out our site and use the live chat option. Thanks for reading!