# Managing Naming Series (Document Numbering)

Use this guide to choose how NexWave names records, set a readable display title, and show that title in link fields. It also covers numbering for Sales Invoices, Sales Orders, Purchase Orders, Purchase Invoices, Work Orders, and Job Cards, including series counters, conditional rules, and amendments.

A record has a unique identifier, such as an item code or invoice number. Its display title can be different, such as an item description. NexWave assigns the identifier when you first save a new record. Changing a naming method, series, or counter affects future records. It does not rename records that already exist.

## Before you start

* You need the **System Manager** role to use **Customize Form**, **Document Naming Settings**, and **Document Naming Rule**. If you cannot open a setting, ask your administrator.
* Test a naming change on a demo site before you apply it to live records. Record the existing **Naming Rule**, **Auto Name**, **Title Field**, and **Show Title in Link Fields** settings so you can restore them.
* Agree the format and cutover point with the people who own sales, purchasing, manufacturing, and finance records. Confirm any invoice numbering requirements before you change an invoice series.
* For each document type, record the current **Series** or **Naming Series** options and the highest number already used in every prefix you plan to change. Include cancelled records in this check.
* Check whether an integration, import, print format, or other process expects the current prefix. Plan its change at the same time.
* Make the change when staff are not creating documents of that type. Ask them to finish or pause new drafts during the cutover.

Do not try to make separate document types share one identifier. Each document type needs its own clear series. A counter can set the *next* number in one series, but it cannot make every new record match an arbitrary number from another system. Keep an external number in an approved reference field when you need to trace it.

## Choose a naming method

In **Customize Form**, the **Naming** section controls how a new record gets its identifier. Choose the method in **Naming Rule**, then check **Auto Name**. The available choices can vary by document type and site version.

| Naming Rule | How it works | Auto Name example |
|-------------|--------------|-------------------|
| **Set by user** | The user enters a unique identifier when the new record is saved. Use this when staff must choose the code themselves. | `prompt`          |
| **By fieldname** | Copies the value of a chosen field into the identifier. That field must have a value, and the resulting identifier must be unique within the document type. | `field:item_code` uses **Item Code**. |
| **By "Naming Series" field** | Uses the series selected on the new record and adds its next number. Use this when staff need a choice of approved series. | `naming_series:`  |
| **Expression** | Builds the identifier from fixed text, date parts, and a running number. Use this for one automatic pattern. | `DOC-.YYYY.-.#####` gives a number such as `DOC-2026-00001`. |
| **Random**  | Assigns a generated identifier. Use this when a readable sequence is not needed. | `hash`            |
| **By script** | Uses naming logic supplied by an installed application. Ask your NexWave administrator to confirm the supported behaviour. | The application controls the identifier. Selecting this option does not create a script. |

An **Expression** is a naming pattern, sometimes called formula-based naming. It is not a spreadsheet formula or a place to enter program code. Dots separate the parts of the pattern. `YYYY` inserts the calendar year, and five hashes insert a running number padded to five digits. The year uses the date when NexWave names the record, not necessarily its **Posting Date**.

An expression sets one pattern for the document type. **By "Naming Series" field** lets a user choose between patterns on each new record. For the series method, the form must already have a suitable **Series** or **Naming Series** field. Changing **Naming Rule** alone does not add this field or its options. Ask your administrator if the form does not already support series.

Some standard document types have application settings or built-in naming logic. For example, an Item can use naming controlled by **Stock Settings**. A matching **Document Naming Rule** can also take priority. Check the document type's own settings before you change **Auto Name**. Use **Document Naming Settings** for the ordinary transaction-series changes described later in this guide.

## Set the naming method in Customize Form


1. Open a record of the required type. Open its menu and select **Customize**, or search for **Customize Form**.
2. Check **Enter Form Type**. Confirm that you selected the correct document type.
3. Select **Details** and find **Naming**. Record the current **Naming Rule** and **Auto Name**.
4. Select the required **Naming Rule**. NexWave can fill or clear **Auto Name** when you change this choice. Check it after you select the method.
5. Complete **Auto Name** for the selected method. For **By fieldname**, enter `field:` followed by the field's **Name**. For **Expression**, enter the complete pattern, including the dots and hashes.
6. Select **Update**. Reload the document form before you test a new record.

 ![Naming Rule and Auto Name for field-based item identifiers](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC80M2I3OWJlZi1mM2ZiLTRlMGItYjBmNy1iMzgxZmUxOTk5OWUvMDYtbmFtaW5nLWJ5LWZpZWxkLmpwZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIwOTAwLCJleHAiOjE3OTI3MDczMDB9.z0fQCI0pPtaAEaMzXRiMvlqTvzv3ufU2qsweGi-kgiM)

The example uses **By fieldname** with `field:item_code`. It takes the value entered in **Item Code**. Changing **Item Code** or another source field later does not, by itself, rename an existing identifier.

 ![An unsaved example of Expression naming with a year and five-digit counter](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9iOTZlM2U5Yi0yYjZlLTRmNTItOTM5ZC00MTQzZjM5Yzc5YTcvMDgtbmFtaW5nLWV4cHJlc3Npb24uanBnIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjA5MDAsImV4cCI6MTc5MjcwNzMwMH0.Sw4p2ftKhubhqiuJn9Tw-Mpeu_OHeVWbmxyG1iuORBU)

The expression screenshot shows a configuration example only. It does not recommend replacing the standard Item naming method. Test the method on the intended document type before you use it in live work.

### Find the value to enter for a field

Some settings need the field's **Name**, rather than the label shown to users. For example, **Item Name** is the label, while `item_name` is the value required in **Title Field**.


1. In **Customize Form**, select **Form**.
2. Select the required field in the form layout.
3. In its properties, check **Label** and copy **Name**. Do not change the field's **Name**.
4. Return to **Details** and enter that value in the relevant setting.

 ![Item Name field properties showing its Label and Name](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC81MWNiMjFhNC1lYzA5LTRmYjgtYTViZi02MzMxMGMwYzdiYmYvMDktZmllbGQtbmFtZS1wcm9wZXJ0eS5qcGciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjYyMDkwMCwiZXhwIjoxNzkyNzA3MzAwfQ.amA_FqZKjsGitPWO84tvWHbxJJWRLG6axAWSyc7THBI)

## Set the display title and show it in link fields

Use **Title Field** when a readable name should appear as the record's title. Use **Show Title in Link Fields** when staff should see that title while selecting or viewing the record through a link field on another form.

For example, an Item can keep **Item Code** as its unique identifier and use **Item Name** as its display title. An item with code `LAMP-001` can show the title *Desk Lamp*. The link still stores `LAMP-001`, even when it displays *Desk Lamp*. Two records can have the same title, so check the identifier when titles are similar.


1. In **Customize Form**, select the required document type and open **Details**.
2. Find **View Settings**.
3. Set **Title Field** to the **Name** of an existing field that contains a useful title. For Item, enter `item_name` to use **Item Name**.
4. Tick **Show Title in Link Fields** if links to this document type should display the title. Leave it unticked if links should continue to display the identifier.
5. Select **Update**. Reload NexWave and any other open forms that link to this document type.
6. Open an existing record with a populated title. Check the form heading. Then open a form with a link to this document type and check its search results and selected value. Confirm that the link opens the correct record.

 ![Title Field and Show Title in Link Fields in View Settings](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9kNWRjNzU4OC1jMjkxLTQ2YmEtYWVjNy1hMzBkYzI4Y2VhNDMvMDctdGl0bGUtZGlzcGxheS1zZXR0aW5ncy5qcGciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjYyMDkwMCwiZXhwIjoxNzkyNzA3MzAwfQ.WAM__W5x4Q7maL_J0n1XdU6gn8o578Jpjd4Bt0QekYU)

The screenshot shows **Item Name** selected as the title source and **Show Title in Link Fields** unticked. Tick the checkbox to use the title in links. Link search results can also show the identifier to help you distinguish records.

These settings change the display, not the saved identifier or the value stored in a link. They can change how existing records appear. They do not automatically change print formats, exports, or integration references. Keep the title field populated and check any required output separately.

## Check a naming or title change

* Create a safe new draft of the intended document type. For **Set by user**, enter the identifier when prompted. For **By fieldname**, populate the source field. For a series or expression, check the prefix, date parts, and running number after the first save.
* Check that an existing record still has its original identifier. A naming change must not be treated as a rename operation.
* For title changes, check a populated title, a blank title, and two similar titles. Confirm staff can still identify and open the correct record through a link.
* Check the same path used by staff, including creation from another document or an integration when applicable. Built-in naming logic can differ from a manually created draft.
* If the result is wrong, pause new records of that type and restore the recorded settings. This affects later records only. Ask your administrator how to correct any records already saved.

The following sections explain how to maintain selectable transaction series, counters, conditional rules, and amendments.

## 1. Identify the series to change

Search for **Document Naming Settings** in NexWave. The **Select Transaction** list contains the document types that support a series. Choose one type at a time.

| Document type | Field on a new record | Example starting format |
|---------------|-----------------------|-------------------------|
| Sales Invoice | **Series**            | `ACC-SINV-.YYYY.-`      |
| Sales Order   | **Series**            | `SAL-ORD-.YYYY.-`       |
| Purchase Order | **Series**            | `PUR-ORD-.YYYY.-`       |
| Purchase Invoice | **Series**            | `ACC-PINV-.YYYY.-`      |
| Work Order    | **Series**            | `MFG-WO-.YYYY.-`        |
| Job Card      | **Naming Series**     | `PO-JOB.#####`          |

These are examples from the standard demo setup. Your site's formats may differ. Sales and Purchase Invoices can also have separate return series. Keep those options when you still use returns.

 ![The Document Naming Settings sections](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzkwMjZmYTA0LWQwMzktNDhiOS1iOTZjLTIwZWM2ZWJmOTgwOC9jMDcxZTc3Yy0xYjU4LTRkOTMtOGU3Yy00ODBmYTUzODMyMjEvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjA5MDAsImV4cCI6MTc5MjcwNzMwMH0.bjBBlYWE1ql3r4H7sNhHbHSLmCWlqey4u9XU0W_fUto)

 ![Select a document type in Document Naming Settings](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzkwMjZmYTA0LWQwMzktNDhiOS1iOTZjLTIwZWM2ZWJmOTgwOC8yYjJlNWY3Yi03ODc3LTQ2NDMtYjJlNC1jN2FkY2Y3OGMyZTUvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjA5MDAsImV4cCI6MTc5MjcwNzMwMH0.QJenlWlW4kzkr5T4d_gYI-H0pqc2mZ0KtHeF56Wp8lM)

## 2. Plan a format and preview it

In **Series List for this Transaction**, each format is on a separate line. A format has fixed text and can include these parts:

| Part | Result |
|------|--------|
| `INV-` | Fixed text in every number. |
| `.YYYY.` or `.YY.` | Four-digit or two-digit calendar year when the record is named. |
| `.MM.` or `.DD.` | Calendar month or day when the record is named. |
| `.FY.` | The configured fiscal-year name for the document. |
| `.####` or `.#####` | A four-digit or five-digit running number. |

For example, `INV-.YYYY.-.#####` produces a number such as `INV-2026-00001`. If you leave out the hash part, NexWave uses five digits. Keep the dot before the hashes.

Use **Try a Naming Series** to preview a proposed format before you save it. The preview shows the shape of the number. It does not reserve a number or prove that a prefix is safe to reuse.

When the year or another date part changes the prefix, that new prefix starts its own series counter. A format without a changing part keeps one counter. The calendar year part uses the date when NexWave names the record, which can differ from a backdated **Posting Date**.

## 3. Add or change the available series


1. Open **Document Naming Settings** and choose the type in **Select Transaction**.
2. Copy the current lines in **Series List for this Transaction** into your change record so you can restore them if needed.
3. Add the new format on its own line. Keep any existing format still needed by staff or integrations.
4. Put the intended default on the first line. If staff must choose a format for every new record, tick **User must always select** instead.
5. Enter the proposed format in **Try a Naming Series** and check **Preview of generated names**.
6. Select **Update**. Reopen the document type and confirm that the lines and selection setting were saved.

 ![Series list, preview field, selection control, and Update button](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzkwMjZmYTA0LWQwMzktNDhiOS1iOTZjLTIwZWM2ZWJmOTgwOC81MjY1ZjRkNC03YTI1LTRlNTMtYmU3ZS1mMjgyZGRiMzdjNDAvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjA5MDAsImV4cCI6MTc5MjcwNzMwMH0.mVXxlRHlXD1mXcOVCPx-Q0SumafH6v688gQ2mieKLso)

Repeat these steps for each required document type. NexWave rejects a series that is already configured for another document type, so give each type a distinct prefix.

## 4. Set the next number or start a new sequence

Use **Update Series Counter** when you need a series to continue after a previous system or skip ahead to an approved number.


1. Search the relevant document list for the chosen prefix. Confirm the highest number already assigned, including cancelled records.
2. In **Document Naming Settings**, expand **Update Series Counter**.
3. Select the exact **Prefix**. If the format includes a year, select the prefix for the current year, not an earlier year's prefix.
4. Read **Current Value**. It is the last number held by that prefix.
5. Enter one less than the number you want NexWave to assign next. For example, enter `4999` when the next number must be `5000`.
6. Select **Update Series Number**. Re-select the **Prefix** and confirm **Current Value** now shows the value you entered.

 ![Prefix, Current Value, and Update Series Number](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzkwMjZmYTA0LWQwMzktNDhiOS1iOTZjLTIwZWM2ZWJmOTgwOC82NjcyNWEwNi1hNTZhLTRjNWYtOTllNi1iMzBhODUwOGRmMmQvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjA5MDAsImV4cCI6MTc5MjcwNzMwMH0.tkjXVq_EGpOTOaN51xo_evSHEK5VZfZzL6t5TOblhuc)

Never move the counter back into numbers that may already exist. A duplicate number can stop a new document from saving. To restart at `00001`, use a new prefix, such as a new year or an approved new format. Confirm that the resulting full identifiers are unique before the cutover.

The counter belongs to the resolved prefix. Changing one prefix does not change another document type or another year's prefix. It also does not rename, cancel, or remove existing documents.

## 5. Use the series and check the result


1. Open a new record of the document type you changed.
2. Check **Series**, or **Naming Series** on a Job Card. Select the intended format when more than one is available.
3. Complete only the fields needed for a safe draft, then select **Save**.
4. Check the new document number at the top of the saved record and in its list view. Confirm its prefix, year part, and running number.
5. Check a second new draft only if your team can safely create one. Its counter should follow the first. Record the result in your change record.

Some Job Cards are created from Work Orders. Check the resulting Job Card number after creation, even when a user did not open a new Job Card form.

The number is assigned at the first save, not at submission. A deleted draft can leave a gap. A cancelled document keeps its number. Do not reduce a counter only to close a gap.

## 6. Use a Document Naming Rule when a condition must choose the number

Use **Document Naming Rule** when a document's own value must choose a format automatically, such as a separate sequence for records with a selected **Company**. A rule can take priority over the **Series** or **Naming Series** selected on the form. Use **Document Naming Settings** for ordinary selectable formats.


1. Search for **Document Naming Rule** and select **Add Document Naming Rule**.
2. Set **Document Type** to the record type the rule will name.
3. Set **Priority**. A higher number runs before a lower number when more than one rule applies.
4. Add rows in **Conditions**. In each row, choose **Field**, **Condition**, and **Value**. All the rows must match. For example, select **Company** as **Field**, `=` as **Condition**, and the intended company as **Value**.
5. Set **Prefix** to the text and any date parts that must appear before the number. Set **Digits** to the number of digits in the running number.
6. Select **Save**. Create a safe draft that matches the rule and confirm its number. Also check a draft that does not match, so you know which normal series it uses.

A rule with no **Conditions** applies to every new record of its **Document Type**. Use **Disabled** to stop a rule that should no longer apply. Avoid overlapping conditions unless the **Priority** order is deliberate.

Each rule has its own **Counter**. It is separate from **Update Series Counter** in **Document Naming Settings**. If you change a rule's **Counter**, enter one less than the required next number and check existing names first. NexWave shows a warning when you save a changed rule counter. A year part in a rule's **Prefix** does not reset this separate rule counter at the new year.

If no enabled rule matches, NexWave uses the normal naming process for that document type. When a rule matches, the visible **Series** selection may differ from the number assigned by the rule. Check the saved number, not only the field selection.

## 7. Choose how amended documents are numbered

An amendment is a new record linked to a cancelled submitted document. Open **Document Naming Settings > Amended Documents** to choose its numbering behaviour.

| Option | Result |
|--------|--------|
| **Amend Counter** | Adds an amendment suffix to the original number, such as `INV-0045-1`. |
| **Default Naming** | Uses the normal naming process for a new record, including a matching rule if one exists. |

To set the general choice, select **Default Amendment Naming**, then **Update Amendment Naming**. To set a choice for one document type, add a row in **Amendment Naming Override**, select its **DocType** and **Action**, then select **Update Amendment Naming**.

 ![Default amendment naming and per-document override controls](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzkwMjZmYTA0LWQwMzktNDhiOS1iOTZjLTIwZWM2ZWJmOTgwOC9lZjgyZTdhMC1jZGIyLTQ5ZjUtOWYzMi0zZmNkNDI0ZmYxMDkvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjA5MDAsImV4cCI6MTc5MjcwNzMwMH0.HCpngLSRgxvv-L6Ct_PRTPHPQVnMz1NaGpRfp9U0Phg)

Choose the amendment policy before you rely on a strict invoice sequence. Test one safe example and confirm how staff can trace the amended record back to the original.

## Review and troubleshooting

| What you see | What to check |
|--------------|---------------|
| A field-based name does not save | Check that **Auto Name** starts with `field:` and uses the field's **Name**, not its **Label**. Populate that field and check that its value is unique. |
| The naming method does not change the result | Check the document type's own settings, built-in naming behaviour, and any matching **Document Naming Rule**. Reload the form after **Update**. |
| An expression gives an unexpected number | Check the dots, date parts, and hashes in **Auto Name**. Use `DOC-.YYYY.-.#####` as a simple pattern. Confirm no higher-priority rule controls the name. |
| A title setting is rejected or shows no useful title | Use the existing field's **Name** in **Title Field**, and check that the field has a value on the record. |
| Links still show the identifier | Check **Title Field**, tick **Show Title in Link Fields**, select **Update**, then reload NexWave and the form containing the link. |
| Two link choices have the same title | Compare their identifiers and open the intended record. Use clearer title values where possible. |
| The next number has the wrong prefix | Check **Select Transaction**, the first line of **Series List for this Transaction**, the **Series** or **Naming Series** field, and any enabled **Document Naming Rule**. |
| A rule gives a different number from the selected series | A matching rule takes priority. Check its **Document Type**, **Conditions**, **Priority**, **Prefix**, and **Counter**. |
| The expected format is not offered | Check that it is on its own line in **Series List for this Transaction** and that **Update** was selected. Reload the form after a settings change. |
| The number is already in use | Stop new records of that type. Check the highest existing number and raise the relevant series **Current Value** or rule **Counter** above it. Do not delete an existing record to reuse its number. |
| The year part differs from **Posting Date** | `.YYYY.` uses the date when the record is named. Review the format before using it for backdated records. |
| The counter appears to skip a number | A saved draft can use a number even if it is later deleted. Cancelled records retain their identifiers. Do not rewind the counter to fill a gap. |
| A rule's year changed but its number did not restart | A rule has one **Counter** across years. Review whether a separate rule or an approved counter change is needed. |

Before staff resume normal work, confirm the saved number for each changed document type and record the old format, new format, old counter, new counter, and effective date in your change record.

## Related documentation

* [Working with forms](/doc/13af761f-6a0c-47dc-9a9e-6505212bba11): save a draft and find its assigned identifier.
* [Sales Order to Despatch, Invoice & Payment](/doc/59df16cb-4c6f-4a5f-aacc-4c56739136ba): follow sales documents through the main workflow.
* [Record and Review a Supplier Invoice](/doc/6ace96ed-2da0-436b-b97f-279fc107fe3e): check invoice details before submission.
* [Roles, Permissions & User Access](/doc/91ba21d0-ed81-4f08-898f-846f5c1a43d4): review administrator access.