Open-source, real-time starting point application for Asana (via webhooks)


#1

Hi Everyone,

My name is Eyal, and I’m an R&D Manager and a startup company using Asana.
A little over 3 years ago I created a (what I think was the first ever) reporting solution for Asana named Flowbs (https://blog.asana.com/2013/04/introducing-asana-connect/)
Time has passed and the Asana API platform evolved, while Flowbs is no longer available, I’d like to share with you my latest open-source side project, that you can use as a starting point for your own Asana integrations!

It’s a webhooks manager and event handler for Asana, that takes care of all the mandatory technicalities when creating a real-time Asana application/integration.

It’s called “AWM” (Asana webhooks manager), although I’m open for suggestions :slight_smile: and can act as the starting point for teams, companies or enterprises that use Asana and want to have their own custom solution/integrations.

AWM is written in JavaScript - Node on the server, Angular on the client-side and already comes with common functionality required by any integration:

  1. Login with Asana
  2. Webhooks management for all projects and all workspaces (view,add,remove)
  3. Handling webhooks “handshake” during creation
  4. Accepting webhook events payloads and verifying payload source (hmac2056)
  5. A live view for viewing incoming events in real-time
  6. Documentation on how to extend and modify

Optionally, I’m considering adding a very basic dashboard view, just to showcase the benefits and ease of use for developers.

AWM is available on github at: https://github.com/EyalRonel/asana-webhooks-manager
I’d be happy to discuss further with you guys and see where this can evolve to.

Kind regards,
Eyal


#2

Hi @Matt_Bramlage,
Would be happy to demo this to you get some feedback, possibly see how this can be put to use by other developers/companies using Asana


#3

Hey @Matt_Bramlage, I’d greatly appreciate some feedback from you on this…


#4

Hi there! Sorry for the delay - I was up to my eyeballs in planning a hackathon we had internally here at Asana.

Speaking of which, I presented and assisted one of the other platform team engineers with something quite similar; essentially something like AWS Lambda for Asana, where we’d host and run at an appropriate time callbacks when internal state changes in Asana.

This sounds right up that alley: for our customers, especially ones who have a less technical background, setting up and managing webhooks can be really daunting. This is partially due to security best practices, and partially due to purely technical reasons, i.e. performing the handshake correctly, and we have to be able to see your server across the internet, which means that it likely needs a publicly accessible URL.

I see (if reading through the blur worked) that you addressed this last hurdle with ngrok, which is how I test things out when answering techical questions about webhooks too! The biggest concern there is that ngrok is acting as a man-in-the-middle, so we try to be very transparent that using it has security implications, but it’s great for the development cycle when you just want to explore/test our webhooks.

All in all, this is a great starting place to see how to get started with webhooks. If we have any folks ask about something like this, where they can get started with just adding in the logic they want to implement, I’ll be sure to forward them on!


#5

Thanks Matt, Glad to find you’re seeing the value in this.

AWS Lambda is a very cool concept, that solves the man-in-the-middle issue, since it’s part of Asana. However, this also means there’s always going to be flexibility issues, mostly in terms of how companies would like to use and manipulate / aggregate their data to perform data analysis and BI queries.

I’d really love to see how this can be put to use and would be interested to discuss this a little further with you via email or a skype call if your up for it.

Would be happy to see this as a developer tool as well as the base for something bigger. Lets chat.