Auto ID for individual dartboards

I manually add a unique ID to every artboard so that they are easy to search for and easy to reference in client meetings. I even have a symbol that displays this on the dartboard so stakeholders can easily and unambiguously refer to it. I’m amazed there is no built in facility for this.

(I work at scale on large enterprise SaaS that typically has hundreds of prototypes/sketch files and in turn hundreds of artboards. Without a quick searchable ID I’d be lost!)

Hi @Oli , welcome to the Forum!

Thanks for sharing this. I wanted to ask if you’ve tried the Renaming feature of Sketch? With this feature, you can batch rename a selection of artboards and define a specific syntax for them. To use it, select the artboards you want to rename then press ⌥⌘ R and enter how you want to rename the artboards:

Let s know if this helps!

It’s close! But what I need is effectively a friendly looking UUID that auto generates.

In our workflow we have a team of business analysts who document the design solutions (from Sketch) in tickets for developers/testers to work from (we use JIRA).

To remove ambiguity and allow search in tickets we label each artboard with a unique ID (which we have to manually do). The ID is added to the ticket in a field that allows it to be quickly searched.

So typical workflow: dev/tester sees ticket and reads SketchID, then opens sketch project and searches for that artboard with that ID.

My request is that the ID is auto generated and displayed (potentially as a prefix to the artboard name) so it is visible, searchable, but also permanent (even if rest of artboard name changes).

I appreciate that’s a bit of a solution but the requirement is hopefully clear!

(We build large enterprise level SaaS and have hundreds of projects in permanent use that reflect every view of the live product as well as future work. A single project may have 50-100 pages with 10+ artboards in each)

1 Like

This sounds less like a built-in core feature of Sketch and more like a job for a plugin.

Here I’ve hacked together a tiny plugin that automatically assigns artboards with random* IDs as they are added to the document. It also keeps this ID in place even if it was explicitly removed from an artboard name by the user:

Screen Recording 2024-02-21 at 15.55.24

Here’s a download link if you want to give it a try and see if it fits your workflow:

* all IDs this plugin generates are specifically made to be non-unique but human-readable for illustrative purposes. AFAIK generating random identifiers offline that are going to be unique across multiple systems/users is a challenge of its own given that you also want them to be human-readable.


Ohh this is amazing! Thanks a million @rodionovd! You’re absolutely right! This is better handled by a plugin. I hope it fits Oli’s workflow.

Cheers! :raised_hands:

1 Like

Oh wow, this looks exactly what I need. Amazing. Many thanks and I’ll give it a go shortly and let you know how I get on.

Works like a charm. I guess an enhancement would be to be able to set the first few characters per project file so it is a little more human readable to a project, but even on it’s own having a unique ID which is searchable in runner pro, and can be referenced externally in other developer environments totally removes my need to manually create these, and being essentially uneditable is less likely to cause human errors in renaming etc.
Thank you!!!


Is the project name available as a variable that could be truncated to say the first 4 chars and used instead of the hardcoded string “ABC-”

return “ABC-” + artboard.objectID().slice(0, 6);

Oh that’s more than doable :slight_smile: I’ve updated the plugin to offer you a dialog to enter your desired project prefix in:

This new project prefix will be applied to all new artboards in the active Sketch document.

I’ve also tuned the ID generation routine a bit so now it’s less likely to produce duplicated identifiers (but that’s still possible, please don’t count on it too much).

Download the plugin from here: - Google Drive


Ahhh perfect Dmitry! longer UUID is great too. This is superb. (I’m used to getting the odd duplicate due to manually doing this so no issue if one pops up now and then.) Thank you again and really appreciate your time in-spite of my feature creep request.

1 Like

Awesome, glad I could help! I love problems with a bit of an ad-hoc automation opportunity in them, and your request was a perfect one for this :smile: