Auto-number tickets in a SharePoint list (TKT-0001)
Short answer: SharePoint has no auto-number column type, but every row in a list already gets a built-in ID that counts up from 1. Show the ID column in your view, or use a Power Automate flow to write a formatted number like TKT-0042 into a text column after each new row is saved. A calculated column can join TKT- to the ID, but Microsoft says a formula cannot use the ID of a newly inserted row, so the flow is the safe way if the number must appear right away.
Why tickets need a running number
When people say "the printer ticket" or "the one from Tuesday", two people may mean two different rows. A short number fixes that. "TKT-0042" means one row and nothing else. The number goes in emails, in chat and on the phone. It also makes it easy to find the row later.
A number should be three things:
- Unique. No two rows share it.
- Stable. It never changes after the row is made.
- Short. People can say it out loud.
The built-in ID column meets all three. The rest of this guide is about how to show it in a way people like.
How this differs from other guides
This guide is about one thing: the ticket number. For the whole tracker (columns, status, owner and views), see "Help desk ticket tracker in a SharePoint list". For a log of things that went wrong, see "How to set up an incident log in SharePoint". For a log of planned changes, see "Change request log in a SharePoint list". Any of those lists can use the numbering shown here.
What the ID column is
Microsoft's page "List and library column types and options" describes each column type you can pick, from Single line of text to Managed Metadata. None of them is an auto-number type. What you get instead is the ID. Every list item gets a number from SharePoint when it is saved. The first row is 1, the next is 2, and so on. The column is called ID. Some lists show it in the view already. In a list it may be hidden, and you have to turn it on. It is also not shown on the item form by default, so a person who opens a ticket may not see the number.
Two honest notes:
- The numbers can have gaps. If someone deletes a row, its number is not used again. A list that shows TKT-0001, TKT-0002 and TKT-0004 is not broken.
- The numbers belong to one list. A second list starts again at 1. If you run two lists, add a different prefix to each, such as TKT- and INC-.
Step 1. Plan the list first
Write down the columns before you build. For a ticket list, one way to start is:
- Title: a short label for the problem. You can rename it, for example to "Summary".
- Requester: a Person column.
- Priority: a Choice column. Our advice, not a Microsoft rule: put a number in front of each value, such as 1 High, 2 Medium, 3 Low.
- Status: a Choice column. 1 New, 2 In progress, 3 Done.
- Ticket number: the column you build in this guide.
Create the list with your usual steps. Microsoft describes how in its help page "Create a list". Menu names may differ on your screen.
Way 1. Show the ID column in your view
This is the simplest way, and it costs nothing. The ID is the ticket number. The only change is that people see 42 instead of TKT-0042.
- Open your list.
- Open the view menu and look for the choice to show or hide columns, or the choice to edit the current view. Exact names may differ.
- Tick the ID column.
- Save the view.
Microsoft explains how views keep the columns you choose in its help page "Create, change, or delete a view of a list or library". In the modern experience, columns you show or hide are saved with the view. In the classic experience, you pick the columns on the Edit View page.
When this is enough: a small team that says "ticket 42" and does not need a prefix. When it is not enough: you want TKT-0042 in emails, or you want the number to show on the form.
Way 2. A calculated column that builds TKT- plus the ID
A calculated column is a column that works out its value from other columns in the same row. Microsoft describes how to add one in "Calculate data in lists or libraries". The steps there are: open the list, open the settings (gear), go to List settings, and under Columns select Create column. Give it a name, choose "Calculated (calculation based on other columns)", type the formula, pick what kind of value it returns and select OK. Exact names may differ.
Microsoft shows how to join text and a column value with the ampersand, in "Examples of common formulas in lists". The page gives this pattern: a column, then text in quotes, joined with &. Following that pattern, the ticket formula joins the quoted text TKT- to the ID column. The exact formula may differ on your list, and you should test it. Return the result as a single line of text.
If you want leading zeros, so that you see 0042 and not 42, the same page and the Microsoft page "Introduction to SharePoint formulas and functions" list the text functions you can use. Look there for a function that formats a number as text. Test it on a few rows before you rely on it.
Two limits from Microsoft you should know:
- Microsoft says: "The ID of a newly inserted row can't be used because the ID doesn't exist when the formula is processed." (Examples of common formulas in lists.) So the calculated number can be empty or wrong at the moment the row is first saved. Test this on your own list. Add a row, then look at the Ticket number. If it is blank or wrong until you edit the row, use Way 3.
- Microsoft says the TODAY and ME functions are not supported in calculated columns. So a calculated column cannot use today's date, and an "age in days" column cannot be built that way. Microsoft's introduction page says the two functions are supported in the default value setting of a column.
Our advice, not a Microsoft rule: treat a calculated column as a way to dress up the ID, not as a counter.
Way 3. A small flow that writes the number back
If Way 2 gives a blank number on new rows, let a Power Automate flow write the number after the row is saved. By then the row has an ID. This is the way that works for ticket numbers that must appear in emails.
The idea is short:
- Add a Single line of text column called Ticket number.
- Make a flow that starts when an item is created. Microsoft lists a SharePoint trigger called "When an item is created", described as a trigger that "Triggers when an item is created."
- Add an Update item action. The same Microsoft page lists "Update item" as an action that updates an item in a SharePoint list.
- In Update item, choose your site and list, use the ID from the trigger to pick the row, and set Ticket number to the text TKT- followed by that ID.
- For leading zeros, set Ticket number to an expression. Our advice, not a Microsoft rule: concat('TKT-', formatNumber(the ID from the dynamic content list, '0000')). Microsoft's expression reference lists concat and formatNumber, but its page has no zero-padding example, so test the expression with a row whose ID has one digit, two digits and four digits.
- Save the flow and add a test row.
Why this works: the trigger runs after the row exists, so the ID exists. Our advice, not a Microsoft rule: two people saving at once is not a problem, because each saved row has its own ID and the flow builds the text from that ID, not from a count of other rows. The flow then stores the finished text in a plain column. A plain column can be searched, sorted, shown on the form and used in emails.
Things to check on the flow:
- Use "When an item is created", not "When an item is created or modified". The second one runs on each change, including the change your own Update item makes. That can cause a loop. The Microsoft page lists the two triggers separately.
- Our advice, not a Microsoft rule: keep people from typing in the Ticket number column, for example by hiding it on the form and showing it only in views.
- Check with your admin whether you may use Power Automate flows. License rules vary, and this guide does not state them.
- A flow can fail. If the flow is off, new rows have no number. Check the run history now and then.
Starting at a number other than 1
A Microsoft Q&A answer from Microsoft External Staff says the ID column is a number that starts from 1 and increments by 1 for each new item. The same answer shows a way to display a higher number: add a number to the ID in a calculated column formula, such as ID+99 for a count that begins at 100. Our advice, not a Microsoft rule: do the same addition in the flow expression, for example formatNumber(add(the ID, 999), '0000') to display 1000 for the first row, because a calculated column cannot use the ID of a new row.
Which way to pick
- Way 1 if a plain number is fine.
- Way 2 only for rows that already exist. Microsoft says a new row's ID is not there when the formula runs, so new rows can show the wrong number.
- Way 3 if the number must be there for emails and chats, or if Way 2 shows a blank on new rows.
Put the number to work
Once each ticket has a number, use it:
- Put it in the subject of confirmation emails, for example "TKT-0042 received".
- Ask people to quote it in chat.
- Add a view sorted by the number, newest first, so the latest tickets are on top.
- Use the number as the search term when someone asks "where is my request?"
For emails that go out from the list, see "Send a reminder before a due date in a SharePoint list".
What to avoid
- Do not type numbers by hand. Two people will pick the same one.
- Do not reuse a number after a row is deleted. A new number is better than a mix-up.
- Do not use the Title column to hold the number. Titles get edited. Keep the number in its own column.
- Do not build a counter with a calculated column. Microsoft says calculated fields can only operate on their own row, so a formula cannot count other rows.
- Do not use a loop-prone trigger for the flow. Use "When an item is created".
- Do not copy the list and expect the numbers to carry over. Each list counts on its own.
Honest limits
The ID column is a row number, not a business rule. It has gaps when rows are deleted, and it starts again at 1 in a new list. If you need strict numbers with no gaps, a list alone may not be the right tool, and you should ask your admin or an expert. Menus and names in Microsoft 365 change, so check your own screen. Test each way on a few rows before you tell the team to use it.
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
Can a SharePoint list auto increment number start at 1000?
A Microsoft Q&A answer from Microsoft External Staff says the ID starts from 1 and increments by 1, and shows adding a number to the ID in a formula to display a higher count, such as ID+99.
Does SharePoint already number my list rows?
Yes. Each item gets an ID when it is saved. It may be hidden, so turn it on in your view. You do not need to build a counter.
Can a calculated column build TKT-0001 from the ID?
A calculated column can join text and the ID. But Microsoft says the ID of a newly inserted row cannot be used when the formula is processed. Test a new row. If the number is blank or wrong, use a flow to write the number back.
Will the ID numbers have gaps?
Yes, if rows are deleted. A deleted row's number is not used again. Gaps do not mean the list is broken.
Can I show the ticket number on the item form?
The ID column is not shown on the form by default. A plain text column filled by a flow can be shown on the form. A calculated column may not fill in until after the row is saved.
Sources
- Microsoft Support, Examples of common formulas in lists
- Microsoft Support, Introduction to SharePoint formulas and functions
- Microsoft Support, Calculate data in lists or libraries
- Microsoft Support, Create, change, or delete a view of a list or library
- Microsoft Support, Create a list
- Microsoft Learn, SharePoint connector reference
- Microsoft Learn, Microsoft Q&A, How to create a calculated field to increment values
- Microsoft Learn, Workflow expression functions reference
- Microsoft Support, List and library column types and options