Skip to content

Connector · Tasks and projects

Asana, in every client’s workflows.

Create a task, update a task, or start when a task is added to a project, with the client’s own Asana account.

Triggers
2start a workflow
Actions
2steps in a workflow

Start a workflow when something happens in AsanaBeta

By webhook where Asana sends one, by checking where it does not. A webhook is checked once a day to see it is still on, and if Asana turns it off the alert carries a Reconnect button.

  • A task is added to a projectPolledA new task in a project, checked every 5 minutes.
  • A task is completedPolledA task in a project marked complete, checked every 5 minutes; once per task.

Do it in Asana

A step with its own fields: values from the run go in by name, and what Asana answers is there for the next step.

  • Create a taskA task in a project.
  • Update a taskComplete a task, rename it, change its notes, due date or assignee, found by id. Only the fields set are changed.

Connect the client’s Asana

On the client’s page in Thrum: Add credential, type Asana personal access token.

app.asana.com/0/my-apps → Create new token (signed in to the client’s Asana).

The key is stored encrypted and bound to that client: another client’s workflow cannot use it, and no template or pack copies it.

Asana’s API documentation

Via HTTP

Or by web request: create a task in a project

Each enquiry becomes a task in the client’s project, for whoever picks it up. The web request step, filled in: paste it, swap in the client’s ids, add their key.

  1. 01

    Add the client’s credential

    On the client’s page in Thrum: Add credential, type API key. Signed in to the client’s Asana: app.asana.com/0/my-apps → Create new token → copy.

    {
      "api_key": "2/…"
    }
  2. 02

    Add a web request step

    Name it “Add an Asana task”, set it as here, and pick the credential. Values in double braces are read from the run: here, the lead the form brought in.

    PROJECT_ID
    The long number in the project’s address: app.asana.com/0/<project>/….
    {
      "method": "POST",
      "url": "https://app.asana.com/api/1.0/tasks",
      "headers": {
        "Authorization": "Bearer {{ credential.api_key }}"
      },
      "body": {
        "data": {
          "name": "{{ lead.name }}: {{ lead.summary }}",
          "notes": "{{ lead.phone }} · {{ lead.email }}",
          "projects": [
            "PROJECT_ID"
          ]
        }
      }
    }
  3. 03

    What goes out, and what comes back

    The token acts as the person who made it: use an account that can see the project.

    POST https://app.asana.com/api/1.0/tasks
    content-type: application/json
    authorization: Bearer ••••••••
    
    {
      "data": {
        "name": "Nadia Karim: Quote for a new bathroom, two basins and a shower",
        "notes": "+447700900222 · nadia@example.com",
        "projects": [
          "PROJECT_ID"
        ]
      }
    }
    201
    {
      "data": {
        "gid": "1208000000000001",
        "resource_type": "task",
        "name": "Nadia Karim: Quote for a new bathroom, two basins and a shower"
      }
    }

Watched like everything else

When Asana stops answering or refuses the client’s key, you hear about it, and your client does not.

A failing request
Tried 3 times, 5 seconds apart and doubling, only for errors a retry can fix
A service that asks for a pause
Given it, up to an hour
Requests at once, per account
2, per worker; the rest wait their turn
Timeout
15 seconds, unless the step sets its own
Private and internal addresses
Refused, on every redirect too
The client’s key
Encrypted, bound to the client, and kept out of every run record
A step that keeps failing
Marks the workflow Degraded and alerts you, not the client

Asana and its logo are trademarks of their owner, used here only to say what Thrum works with; no endorsement is implied.

Thrum is cooking.

Get early access and you’ll be among the first in. Early members get a launch perk.