How to add unique task numbers in Asana

June 26, 2026

The problem with referencing Asana tasks

Asana is good at organising work, but a task has no short name you can say out loud. It has a title, which people edit, and it has a long numeric id that only really exists in the URL. Neither is something you want to type into a commit message at the end of the day.

A sequential number fixes that. "Take a look at 142" is faster to say, impossible to misread, and it does not change when someone rewrites the title six weeks later.

What Asana gives you natively

Astogi writes a number like WEB-0042 into the Asana task name, so commits, branches and standups all point at the same task. Free on your first project.

Try for free

Two things, and both are worth knowing before you add anything to the stack.

The first is the ID custom field. Asana added an ID field type in February 2024. Add one to a project and every task gets a number that increments on its own, read-only, in its own column. If all you need is a reference you can sort by or quote while you are inside Asana, stop here. It is native, it is free, and it does the job.

The second is the task's own id, the long number in the URL. It is stable, unique across the workspace, and it is what the API uses to address a task.

What neither of them does is put a number in the task name. The ID field lives in a column, so it does not travel into an email subject, a push notification, a Slack unfurl, a calendar entry or a commit message. And a rule cannot generate one either: Asana's Rules have triggers and actions but no counter, so "number my tasks" is not something you can build out of them.

That gap is what the rest of this post covers.

What changes when the number is in the name

A number in a column is a reference. A number in the title is an identifier that follows the task everywhere the title goes:

  • Search. Typing 142 into Asana's search finds the task, because search matches titles.
  • Notifications and email digests. The subject line carries the number, so you know which task it is without opening anything.
  • Commit messages and pull request titles. WEB-0042: fix login redirect reads fine in a log and is easy to match back.
  • My Tasks and calendar views, where titles are all you see in a narrow column.
  • Standups. "I am on 142, 143 is blocked on the API key" needs no shared screen.

The trade is that you are now editing task titles, which is why the numbering has to be automatic and idempotent. A person prefixing titles by hand gets it wrong within a week, and a script that is not careful will prefix the same task twice.

Choosing a format

The number itself is the easy part. The prefix is where teams disagree, so here are formats that hold up in practice.

Format Looks like Good for
Team code, padded WEB-0042 One team, one project, no season
Season code RSE26/27-0001 Agencies whose work runs in campaigns or seasons
Client plus year ACME-2026-0142 Client work where the year matters later
No padding OPS-142 Small projects that will never pass 999

A few things worth deciding before you commit:

Pad the number. Four digits keeps a column of titles aligned and sorts correctly as text. Three is fine for small projects. No padding is fine too, as long as you accept that OPS-1000 sorts before OPS-142 in a plain text list.

Keep the prefix short. Everything in front of the number pushes the actual title to the right in narrow views. Eight characters including the divider is about as long as stays readable in a list.

Use a date placeholder if the prefix should carry a date. The prefix can include %YY%, %YYYY%, %MM%, %DD%, %MMM% (short month name) and %DDD% (short weekday name), expanded when the task is numbered. A prefix like ACME-%YYYY%- becomes ACME-2026- this year without anyone editing a setting in January.

One honest caveat about dates: a placeholder changes the text in front of the number, not the counter. The sequence is per project and keeps counting across a year or season boundary, so the first task of a new season continues from where the last one stopped. If you genuinely need each season to start at 1, that is a new project, not a new prefix.

How automatic numbering works

Astogi's task numbering integration watches a project through an Asana webhook and numbers each task as it is created. The details matter more than the summary, so here is what actually happens when a task arrives:

  1. The webhook fires, and a job picks up the task.
  2. The job takes a per-project lock before it reads the counter. Two people creating tasks at the same second cannot be handed the same number.
  3. The next number is the project's counter plus one. The prefix is assembled from your settings, the number is padded, and the title is written as PREFIX0042: Original title.
  4. Only the name is sent back to Asana, in one update call. Nothing else about the task is touched.
  5. The counter is saved and the task is recorded, so the same task never gets a second number.

A few consequences of that design are worth knowing up front:

Existing tasks are left alone. Turning the integration on does not renumber a project that already has two thousand tasks in it. Numbering starts from the next task created.

Renaming a numbered task keeps its number. If WEB-0042: Fix login redirect later becomes WEB-0042: Fix the login redirect loop, the number stays. Astogi recognises the task it has already numbered and re-applies the same identifier rather than issuing a new one.

A title that already starts with the prefix is skipped. That is what makes a retried or duplicated webhook harmless: the second delivery sees WEB-0042: and leaves the task alone instead of producing WEB-0042: WEB-0042:.

Subtasks are opt-in. By default only top-level tasks in the project are numbered. If your subtasks need numbers too, the project has a setting for it, and it is off until you turn it on.

Plan limits are visible. If a project goes past the monthly task allowance on your plan, new tasks are marked with an E: prefix instead of being numbered. Nothing is lost, and you can see at a glance which tasks were skipped.

Setting it up

  1. Open the Asana project that needs task numbers.
  2. Invite the Astogi numbering user, auto-number@asana.astogi.com, to the project. It needs to be a member of the project, not just of the workspace.
  3. In Astogi, open the project's numbering settings and set the prefix, the divider, the padding and whether subtasks count.
  4. Create a task. It gets the next number immediately, usually within a second or two.
  5. Reference that number in commits, pull requests and chat.

If the number does not appear, the two usual causes are the user not being a project member, and the project being connected under a different Asana workspace than the one you are creating tasks in.

Numbering a project that already has tasks

Forward-only numbering is the default because it is the safest: nothing existing changes, and nobody's saved references break. But it does mean a project with a long backlog has a visible gap, where old tasks have no number and new ones start at 1.

If you want the backlog numbered as well, that is a one-off sync over the project rather than something the webhook does. Two things to expect from it. It takes a while on a large project, because every task is a read and a write against Asana. And it moves the counter forward by the number of tasks it numbered, so the first new task afterwards continues from there rather than from 1.

Keeping numbers stable

Numbers are only useful if they do not move. Three cases come up:

Deleting a task. The number is not reused. The counter only ever goes up, so a deleted WEB-0042 leaves a gap rather than handing 42 to the next task. That is the right behaviour: a gap is a small cost, and a reused number is a wrong reference.

Duplicating a task. Asana's duplicate copies the title, number included, and Astogi leaves a title that already carries the prefix alone. So the copy keeps the original number until you deal with it. Clear the prefix from the copy's title and the next change to that task gets it a fresh number.

Moving a task between projects. The number belongs to the project it was issued in. A task moved into a project with a different prefix keeps the identifier it already has, which is usually what you want, since commit messages and chat threads still point at it.

Pairing it with Git

Task numbers earn their keep once a repository is in the loop. The pattern is simple: start the commit message or the pull request title with the identifier.

WEB-0042: fix login redirect loop

If you connect your repository, Astogi reads that identifier from the commit and posts the commit onto the matching Asana task as a comment, with the message, the author, the branch and a link. Reviewers reading the task see the code change without leaving Asana, and the number is the only thing that had to match.

The same identifier works in a branch name (web-0042-login-redirect), in a pull request title, and in a deploy note. See linking Git commits to Asana tasks for how that side works, including the GitHub and Bitbucket setup.

Five rules that keep a numbering scheme useful

  1. One prefix per project, decided once. Changing it later leaves two formats in one list.
  2. Never renumber by hand. If a number is wrong, fix the cause, not the title.
  3. Quote the full identifier, not just the number. WEB-0042 survives being pasted into a chat where three projects are being discussed; 42 does not.
  4. Do not put the client or customer name in the prefix if the task list is ever shared outside the team.
  5. Keep the divider consistent. A colon and a space reads well and keeps the title scannable.

FAQ

Are numbers unique per project or per workspace? Per project. Each project keeps its own sequence, so numbers stay short and predictable, and two projects can both have a 42.

Do existing tasks get renumbered when I turn it on? No. Numbering starts with the next task created. A one-off sync can number the backlog if you want it.

What happens if I rename a task? It keeps its number. Astogi recognises the task and re-applies the same identifier.

Can I have subtasks numbered? Yes, per project, and it is off by default.

Does this replace Asana's ID custom field? No, and you can run both. The ID field is a column inside Asana; the number in the name is what travels into commits, chat and email. Many teams keep the ID field for sorting and use the name prefix for talking to each other.

Is the number in the name searchable? Yes. Asana's search matches titles, so typing the number finds the task.

What does the E: prefix mean? The project went past the monthly task allowance on your plan, so that task was not numbered. It is a marker, not an error.

For the full feature details and the exact Asana user to invite, see the task numbering page.

Back to all guides

Start for free with Astogi

You can try Astogi for free on your first project. Need more? Get more for just €29/month.

Try for free

Need help?

If you have any question or need support, feel free to contact us, our team is always happy to come up with the best solutions to your problems.

Need assistance with setting up your project?

Visit our support page