"What if you could use your favorite project management tool with the OutSystems App Feedback feature? Is that even possible? Yes, thanks to connectors in the Forge, it is. For example, here's how OutSystems and Asana integration works."
Delivering a perfect app on the first release is, well, kind of impossible. And, even if you did deliver what you thought was the perfect app, how likely are users to agree with your assessment? After all, we all know how much their opinions change—and quickly. So, the hard facts are: you have to improve your app constantly to meet your users’ expectations.
Feedback is key to ensuring your app delivers what people need. It’s an important communication channel between you or your development team and those who use your apps. Without access to relevant user feedback, each new release will feel like a shot in the dark. You know you have hit a target, but was it the right one?
Users, It’s Time We Talked
There are a number of ways you can ask users to share their thoughts and experiences with your app. For example, you can host a user feedback session so you can talk directly to your users. You can open an email channel specifically for users so they can write you about what they think. OutSystems apps, however, offer an even smarter way.
Meet App Feedback. With it, users let you know, directly from the app, what they think or what’s causing them problems. On mobile devices, users can draw on top of the screen and write a message. In addition, there is an option to record an audio message, which is often easier than typing.
With App Feedback, you or your development team has access to what users see. So, that is precious information that you don’t get in user feedback sessions or e-mail messages. And, just imagine how convenient this is for users.
Getting It All Under Control in Asana
Receiving feedback is just the beginning. First of all, you’re not going to get something from just one user. Instead, it'll be multiple users. So, that means categorizing, discarding duplicates, prioritizing, and splitting everything into sprints. After that, you have to go through the traditional develop-test-release cycle. Things can get messy in a hurry.
But, what if you could use your favorite project management tool with the OutSystems App Feedback feature? Is that even possible? Yes, thanks to connectors in the Forge, it is. For example, here's how OutSystems and Asana integration works. (I’ll tell you how you can do it with JIRA and Zendesk Support in later posts.)A sample project with tasks in Asana
Gonna Get Ourselves Connected: Reusing API Connectors for OutSystems and Asana Integration
Usually, to integrate apps with Asana, access to their APIs is necessary. Asana exposes a set of REST web services that developers can consume. App Feedback, on the other hand, is an OutSystems application, and exposes public actions that another OutSystems application can consume directly.
Fortunately, we can skip all that and use connectors for our OutSystems and Asana integration. Created by our community of OutSystems developers, you can download and install the open-source Asana Connector and Feedback Connector components from the OutSystems Forge in your own application. (You can find all the source code here.)
After installing the connectors, we create a new application in OutSystems to hold our integration app. The name in this example is “Feedback to Asana.” Next, we’ll add the two connectors as dependencies to this new app and create a timer. The purpose of the timer is to synchronize the feedback with Asana. Here’s the logic:
Now we're ready to get to the good stuff. First, we check if there’s some new feedback. If so, we create the task in Asana with Task_New. As the logic shows, before we can do that, though, we need to retrieve our workspaces and projects so they’re available for the task because we’ll need to provide a workspace ID. In our example, we’ve also provided a project ID; this ID is optional. After retrieving the necessary workspace and task values, we create the task and mark the synchronization as complete.
I have simplified this example a bit by assuming that there’s only one workspace in Asana and only one project. However, you can use site properties to configure the workspace and project names. Then, it would be only a question of iterating all workspaces and all projects until you find the correct ones. You're welcome to try. However, I'm going to stick with my simple example.
At this point, it might seem like a good idea to test the OutSystems and Asana integration. Unfortunately, the test would fail. An important step is missing.
Time for a REST Authentication
Before invoking an Asana action, we need to authenticate ourselves first. Of course, that makes sense! This code is running in a web server, and for all Asana knows, the web server could be representing anyone.
So, we’ll need to log into Asana and generate a personal access token. To do this, go to your profile settings and select the Apps tab. Then click the Manage Developer Apps link. This opens Developer App Management, where you can create a new Personal Access Token. You then copy the token and use it in the AsanaToken_Set action.
This completes the integration. Here's what it looks like.
But, to be honest, we can improve on this. All it takes is a few changes.
Upping the OutSystems and Asana Integration Game
After creating the task in Asana, we attach the feedback image. Then, it’s time to use the GetOpenInServiceStudioUrl function. This function returns a link for opening the screen that needs to be changed directly in Service Studio, the OutSystems IDE. Working on a task just got super easy!
Here is the final implementation for the OutSystems and Asana integration:
And here it is in action:
Check out how the image attachment is displayed in Asana and how easy it is to start changing the application.
So, that's how easy Forge connectors make it to integrate the OutSystems App Feedback function and Asana. With this OutSystems and Asana integration setup, your team can manage all the in-application feedback in one place. You get the best of both worlds, all in just a few minutes of work.
In my next post, I'll show you how to do the same kind of integration with JIRA.