Skip to content

Commit ea46ec6

Browse files
authored
Merge pull request Expensify#64289 from Expensify/RachCHopkins-patch-3
[No QA] Create Customize-and-Enforce-Report-Titles.md
2 parents 7323ec5 + 640b141 commit ea46ec6

1 file changed

Lines changed: 102 additions & 0 deletions

File tree

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
title: Customize and Enforce Report Titles
3+
description: Learn how to set dynamic report titles using custom formulas and enforce naming consistency across your workspace.
4+
keywords: [New Expensify, default report title, report naming, enforce report title, report formula, dynamic report name, workspace report titles]
5+
---
6+
<div id="new-expensify" markdown="1">
7+
8+
Automatically generate standardized report titles across your workspace using formulas. Admins can pull in dynamic data like report type or member name, and even lock naming rules to prevent edits.
9+
10+
---
11+
12+
# Customize Report Titles Using Formulas
13+
14+
**Navigation:**
15+
**Settings > Workspaces > [Workspace Name] > Reports**
16+
17+
1. Scroll to the **Report title** section.
18+
2. Click to open the formula editor.
19+
3. Use the formula list below to build your title.
20+
4. (Optional) Enable **Prevent members from changing custom report names** to lock naming rules.
21+
22+
**Example formula:**
23+
`{report:type} - {report:submit:from:firstname} {report:startdate}`
24+
**Result:** `Expense Report - Alice 2025-05-15`
25+
26+
---
27+
28+
# How Dynamic Titles Work
29+
30+
- Custom report names update automatically when the value of the fields they reference is updated. For example:
31+
- {report:total} will update when new expenses are added to the report.
32+
- {report:workspaceName} will update when the workspace name changes.
33+
- Report titles freeze once a report is **Approved** or **Reimbursed**.
34+
- Fields related to report submission are snapshots of the data at the time the report was submitted. For example:
35+
- {report:submit:from:firstName} may capture the first name of Joanne and won't be updated if Joanne changes her first name to "Jo" in Expensify
36+
- The report title will need to be manually edited by an admin, or the report unapproved and submitted again
37+
---
38+
39+
# Report Title Formula Reference
40+
41+
## Report-level data
42+
43+
| Formula | Example | Description |
44+
| -- | -- | -- |
45+
| `{report:id}` | R00I7J3xs5fn | Unique report ID in a base 62 representation |
46+
| `{report:oldID}` | R3513250790654885 | unique report ID |
47+
| `{report:total}` | $325.34 | Total amount on report |
48+
| `{report:type}` | Expense Report | Report type (Expense Report, Invoice, Bill) |
49+
| `{report:reimbursable}` | $143.43 | Reimbursable amount |
50+
| `{report:currency}` | USD | Currency used |
51+
| `{field:Employee ID}` | 123456 | Custom field from the report |
52+
| `{report:created}` | 2024-09-15 12:00:00 | When report was created |
53+
| `{report:created:yyyy-MM-dd}` | 2024-09-15 | Created date (custom format - see below for more formats) |
54+
| `{report:startdate}` | 2024-09-15 | Earliest expense date |
55+
| `{report:enddate}` | 2024-09-26 | Latest expense date |
56+
| `{report:submit:date}` | 2023-09-15 12:00:00 | Submission time |
57+
| `{report:submit:date:yyyy-MM-dd}` | 2023-09-15 | Submission date (formatted) |
58+
| `{report:approve:date}` | 2011-09-25 12:00:00 | Approval timestamp |
59+
| `{report:approve:date:yyyy-MM-dd}` | 2011-09-25 | Approval date (formatted) |
60+
| `{report:expensescount}` | 10 | Number of expenses |
61+
| `{report:workspaceName}` | Sales | Name of the workspace |
62+
| `{report:status}` | Approved | Current report status |
63+
| `{report:submit:to}` | alice@email.com | Approver’s email |
64+
| `{report:submit:from}` | Sally Ride | Submitter full name |
65+
| `{report:submit:from:firstname}` | Sally | Submitter’s first name |
66+
| `{report:submit:from:lastname}` | Ride | Submitter’s last name |
67+
| `{report:submit:from:fullname}` | Sally Ride | Submitter full name |
68+
| `{report:submit:from:email}` | sride@email.com | Submitter email |
69+
| `{report:submit:from:customfield1}` | 100 | Submitter custom field 1 |
70+
| `{report:submit:from:customfield2}` | 1234 | Submitter custom field 2 |
71+
72+
---
73+
74+
# Date Format Options
75+
76+
Customize date appearance with these formats:
77+
78+
| Format | Example |
79+
| -- | -- |
80+
| M/dd/yyyy | 5/23/2024 |
81+
| MMMM dd, yyyy | May 23, 2024 |
82+
| dd MMM yyyy | 23 May 2024 |
83+
| yyyy/MM/dd | 2024/05/23 |
84+
| MMMM, yyyy | May, 2024 |
85+
| yy/MM/dd | 24/05/23 |
86+
| dd/MM/yy | 23/05/24 |
87+
| yyyy | 2024 |
88+
89+
---
90+
91+
# Advanced Formula Functions
92+
93+
Add `|` functions to format results:
94+
95+
| Function | Example | Description |
96+
| -- | -- | -- |
97+
| `frontpart` | `{report:submit:from:email|frontpart}` → alice | Gets first word or string before `@` |
98+
| `substr:x` | `{report:policyname|substr:20}` → Sales Expenses | Trims to first `x` characters |
99+
| `substr:x:y` | `{report:policyname|substr:20|frontpart}` → Sales | Chains multiple functions |
100+
| `domain` | `{report:submit:from:email|domain}` → email.com | Returns email domain |
101+
102+
</div>

0 commit comments

Comments
 (0)