This project integrates Asana with Telex, enabling automatic updates from Asana projects and tasks to be sent to a specified Telex channel. The integration functions as an Interval Integration, routing project and task data from Asana to Telex.
- Fetches project and task details from Asana.
- Formats the retrieved data into a structured message.
- Sends the formatted message to a Telex return URL.
- Handles errors gracefully, ensuring reliability.
Interval Integration: Interval integrations are integrations that send messages to a channel at set intervals.
- Node.js (v14 or later recommended)
- An Asana API Key
- A valid Telex account
git clone https://github.com/telex_integrations/asana-telex-integration.git
cd asana-telex-integration npm installCreate a .env file in the root directory with the following variables:
PORT=3000
ASANA_ACCESS_TOKEN=YOUR_ASANA_ACCESS_TOKEN
ASANA_PROJECT_ID=YOUR_ASANA_PROJECT_ID
WEBHOOK_URL=YOUR_TELEX_WEBHOOK_URL
INTEGRATION_URL=YOUR_INTEGRATION_DEPLOYED_URL
TICK_URL=YOUR_TICK_URL
CRON_FALLBACK_INTERVAL=*/9 * * * * nodemon app.js-
Telex will provide the
return_urlin the body of the request when it triggers the integration. -
The server listens for a
POSTrequest at/tick. Thereturn_urlis dynamically extracted from the request body, and the response will be sent to this URL.When testing locally or simulating Telex requests, you can manually provide a
return_urlfor testing purposes.
- Send a
POSTrequest tohttp://localhost:3000/tickwith the following JSON body:Replace{ "return_url": "https://your-telex-webhook-url.com" }"https://your-telex-webhook-url.com"with a real URL where you want to test the response (e.g., Webhook.site for mock testing).
In production, Telex will send a return_url similar to this:
{
"return_url": "https://ping.telex.im/v1/return/0195373c-9e03-74be-a5bf-744871fb3b6e"
}- The server will fetch Asana project data, format it, and send it to the
return_url.
-
Endpoint:
/tick -
Method:
POST -
Payload (Telex sends
return_urldynamically):{ "return_url": "https://your-telex-webhook-url.com" }- Note: In production, Telex will provide the
return_urldynamically. Thisreturn_urlis where the processed data will be sent.
- Note: In production, Telex will provide the
-
Response:
{ "message": "Tick processed & response sent to Telex" }
To deploy the integration:
- Push your code to a GitHub repository under the
telex_integrationsorg. - Host the JSON configuration file publicly.
- Deploy the integration to a designated Telex test organization.
-
Test locally using
Postmanorcurl. -
Ensure the response is correctly formatted and sent to Telex.
-
Implement unit tests for reliability.
Note: When testing locally, you can manually provide a mock
return_url(e.g., via Webhook.site).
Below is a screenshot of the Asana-Telex integration in action:
- Follow Git best practices.
- Use meaningful commit messages.
- Ensure code is well-documented.
