Skip to content

Commit cbdbc56

Browse files
Merge branch 'main' into helpsite-expensify-card-uk-hide
2 parents b9b50ba + 81226da commit cbdbc56

164 files changed

Lines changed: 5100 additions & 841 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/buildIOS.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ jobs:
144144
op read "op://${{ vars.OP_VAULT }}/OldApp_AppStore/${{ vars.APPLE_STORE_PROVISIONING_PROFILE_FILE }}" --force --out-file ./${{ vars.APPLE_STORE_PROVISIONING_PROFILE_FILE }}
145145
op read "op://${{ vars.OP_VAULT }}/OldApp_AppStore_Share_Extension/${{ vars.APPLE_SHARE_PROVISIONING_PROFILE_FILE }}" --force --out-file ./${{ vars.APPLE_SHARE_PROVISIONING_PROFILE_FILE }}
146146
op read "op://${{ vars.OP_VAULT }}/OldApp_AppStore_Notification_Service/${{ vars.APPLE_NOTIFICATION_PROVISIONING_PROFILE_FILE }}" --force --out-file ./${{ vars.APPLE_NOTIFICATION_PROVISIONING_PROFILE_FILE }}
147-
op read "op://${{ vars.OP_VAULT }}/OldApp_AppStore_Live_Activity_Extension/OldApp_AppStore_LiveActivityExtension.mobileprovision" --force --out-file ./OldApp_AppStore_LiveActivityExtension.mobileprovision
147+
op read "op://${{ vars.OP_VAULT }}/OldApp_AppStore_Live_Activity_Extension/${{ vars.APPLE_LIVE_ACTIVITY_PROVISIONING_PROFILE_FILE }}" --force --out-file ./${{ vars.APPLE_LIVE_ACTIVITY_PROVISIONING_PROFILE_FILE }}
148148
else
149149
op read "op://${{ vars.OP_VAULT }}/OldApp_AdHoc/OldApp_AdHoc.mobileprovision" --force --out-file ./OldApp_AdHoc.mobileprovision
150150
op read "op://${{ vars.OP_VAULT }}/OldApp_AdHoc_Share_Extension/OldApp_AdHoc_Share_Extension.mobileprovision" --force --out-file ./OldApp_AdHoc_Share_Extension.mobileprovision
@@ -171,6 +171,8 @@ jobs:
171171
<string>${{ vars.APPLE_SHARE_PROVISIONING_PROFILE_NAME }}</string>
172172
<key>${{ vars.APPLE_ID }}.NotificationServiceExtension</key>
173173
<string>${{ vars.APPLE_NOTIFICATION_PROVISIONING_PROFILE_NAME }}</string>
174+
<key>${{ vars.APPLE_ID }}.LiveActivityExtension</key>
175+
<string>${{ vars.APPLE_LIVE_ACTIVITY_PROVISIONING_PROFILE_NAME }}</string>
174176
</dict>
175177
</dict>
176178
</plist>
@@ -215,7 +217,7 @@ jobs:
215217
id: prepare-profiles
216218
run: |
217219
if [ "${{ inputs.variant }}" == "Release" ]; then
218-
echo 'PROFILES=[{"name":"${{ vars.APPLE_STORE_PROVISIONING_PROFILE_NAME }}","file":"./${{ vars.APPLE_STORE_PROVISIONING_PROFILE_FILE }}"},{"name":"${{ vars.APPLE_SHARE_PROVISIONING_PROFILE_NAME }}","file":"./${{ vars.APPLE_SHARE_PROVISIONING_PROFILE_FILE }}"},{"name":"${{ vars.APPLE_NOTIFICATION_PROVISIONING_PROFILE_NAME }}","file":"./${{ vars.APPLE_NOTIFICATION_PROVISIONING_PROFILE_FILE }}"}]' >> "$GITHUB_OUTPUT"
220+
echo 'PROFILES=[{"name":"${{ vars.APPLE_STORE_PROVISIONING_PROFILE_NAME }}","file":"./${{ vars.APPLE_STORE_PROVISIONING_PROFILE_FILE }}"},{"name":"${{ vars.APPLE_SHARE_PROVISIONING_PROFILE_NAME }}","file":"./${{ vars.APPLE_SHARE_PROVISIONING_PROFILE_FILE }}"},{"name":"${{ vars.APPLE_NOTIFICATION_PROVISIONING_PROFILE_NAME }}","file":"./${{ vars.APPLE_NOTIFICATION_PROVISIONING_PROFILE_FILE }}"},{"name":"${{ vars.APPLE_LIVE_ACTIVITY_PROVISIONING_PROFILE_NAME }}","file":"./${{ vars.APPLE_LIVE_ACTIVITY_PROVISIONING_PROFILE_FILE }}"}]' >> "$GITHUB_OUTPUT"
219221
else
220222
echo 'PROFILES=[{"name":"(OldApp) AdHoc","file":"./OldApp_AdHoc.mobileprovision"},{"name":"(OldApp) AdHoc: Share Extension","file":"./OldApp_AdHoc_Share_Extension.mobileprovision"},{"name":"(OldApp) AdHoc: Notification Service","file":"./OldApp_AdHoc_Notification_Service.mobileprovision"},{"name":"(OldApp) AdHoc: LiveActivityExtension","file":"./OldApp_AdHoc_LiveActivityExtension.mobileprovision"}]' >> "$GITHUB_OUTPUT"
221223
fi

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009033300
115-
versionName "9.3.33-0"
114+
versionCode 1009033306
115+
versionName "9.3.33-6"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"

assets/images/credit-card-lock.svg

Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

docs/_layouts/default.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424

2525
<!-- SEO tags -->
2626
{% seo %}
27+
{% if page.noindex %}
28+
<meta name="robots" content="noindex, nofollow">
29+
{% endif %}
2730
</head>
2831
<body{% if page.url contains "/search" %} class="mobile-lhn"{% endif %}>
2932
<!-- Google Tag Manager (noscript) -->
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
title: AgentZero Reference – Upcoming Features (New Expensify)
3+
description: Internal reference of planned and coming-soon features for AgentZero. Not for public search indexing.
4+
keywords: upcoming features, roadmap, coming soon, AgentZero reference
5+
noindex: true
6+
sitemap: false
7+
internalScope: For AgentZero and internal tooling only. Use this page to give accurate, forward-looking answers about features that are planned but not yet generally available. Do not expose this URL in end-user-facing help.
8+
---
9+
10+
# AgentZero Reference: Upcoming Features (New Expensify)
11+
12+
This page is a **reference for AgentZero** only. It lists features that are planned or in development for New Expensify. Use it to answer user questions about "coming soon" capabilities accurately and to avoid promising features that are not yet released.
13+
14+
**Important:** These items are subject to change. When in doubt, direct members to official release notes or support for the latest status.
15+
16+
---
17+
18+
## Expense & Report Management
19+
20+
- **Recurring expense templates** – Save and reuse expense templates (e.g. monthly parking, subscriptions) for faster entry instead of re-entering the same expenses each time.
21+
- **Report templates** – Create report templates with default workspace, categories, and approval flow for frequent report types.
22+
- **Approver reminders for outstanding reports** – Optional reminders for approvers when submitted reports have been waiting for approval beyond a set time.
23+
24+
---
25+
26+
## Workspace & Policy
27+
28+
## Workspace Configuration
29+
30+
- **Workspace presets** – Quick-start workspace templates (e.g. "Small business", "Enterprise") to reduce initial workspace setup time.
31+
32+
## Integrations & Accounting
33+
34+
- **Sync status dashboard** – A central view showing sync health, errors, and last successful sync across all accounting connections in one place.
35+
- **Mapping recommendations** – AI-assisted suggestions for chart of accounts and category mapping during accounting integration setup.
36+
37+
---
38+
39+
## Expensify Card & Company Cards
40+
41+
- **Card design customization** – Custom card designs and additional visual options for Expensify Card programs.
42+
43+
---
44+
45+
## Payments & Reimbursements
46+
47+
- **Payment scheduling** – Schedule batch payments for approved reports on a future date (e.g. weekly pay runs).
48+
- **Reimbursement deposit notifications** – Dedicated in-app and email notifications when a reimbursement is initiated, in transit, or deposited.
49+
50+
---
51+
52+
## Travel
53+
54+
- **Travel policy rules** – Stricter enforcement of booking rules (e.g. class of service caps, advance booking requirements, price limits) with clear messaging when a booking falls outside policy.
55+
- **Trip templates** – Reusable trip templates for common routes or recurring event types.
56+
- **Travel reporting dashboard** – Dedicated travel spend and compliance views for admins, separate from general expense reporting.
57+
58+
---
59+
60+
## Search, Insights & Export
61+
62+
- **Scheduled exports** – Automated CSV or integration exports on a recurring schedule (e.g. weekly, monthly).
63+
64+
---
65+
66+
## Security & Compliance
67+
68+
- **Additional 2FA methods** – Support for second-factor authentication methods beyond authenticator apps, such as hardware security keys.
69+
- **Audit log export** – Export workspace audit logs for compliance reviews and internal auditing.
70+
- **Data residency** – Options for data storage in specified geographic regions where applicable.
71+
72+
---
73+
74+
## Help & Localization
75+
76+
- **Help articles in more languages** – Expanded localization of help center content beyond English.
77+
78+
---
79+
80+
- When a member asks "Is X available?" or "When is Y coming?" – check this list before answering.
81+
82+
- Point members to existing, shipped documentation for what is available today.
83+
- Do not cite this page or its URL in member-facing responses.
84+
- Point users to existing, shipped documentation for what is available today.
85+
- Do not cite this page or its URL in end-user-facing responses.
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
---
2+
title: Create and Manage Expense Tags
3+
description: Add tags to use for coding expenses.
4+
keywords: [New Expensify, expense tags, class tracking, cost center, import tags, coding expenses, tag GL code]
5+
internalScope: Audience is Workspace Admins. Covers enabling, creating, importing, activating, and managing expense tags, including multi-level tags and tag GL codes. Does not cover personal expense rules or accounting system configuration.
6+
---
7+
8+
# Create and Manage Expense Tags
9+
10+
Tags help you code expenses for accounting and reporting (for example: cost centers, classes, projects, locations, customers, or jobs).
11+
12+
Workspace Admins can:
13+
- Create tags manually.
14+
- Import tags using a spreadsheet.
15+
- Sync tags from an accounting integration (for example: QuickBooks Online, Xero, NetSuite, Sage Intacct).
16+
17+
Over time, Expensify also learns your tag preferences and applies them automatically.
18+
19+
![The Tags tab]({{site.url}}/assets/images/NewExpensify_ManageTags_3.png){:width="100%"}
20+
21+
---
22+
23+
## How to enable Tags on a workspace
24+
25+
Before you can manage tags, you need to enable the **Tags** feature for your workspace.
26+
27+
1. In the **navigation tabs** (on the left on web, and at the bottom on mobile), select **Workspaces** > **[workspace name]**.
28+
2. Select **More Features**.
29+
3. In the **Organize** section, enable **Tags**.
30+
31+
---
32+
33+
## How to create a tag manually
34+
35+
1. In the navigation tabs (on the left on web, and at the bottom on mobile), select **Workspaces** > **[workspace name]**
36+
2. Select **Tags**.
37+
3. Choose **Add tag**
38+
4. Enter a tag name and select **Save**.
39+
40+
---
41+
42+
## How to import single-level Tags using a spreadsheet
43+
44+
Use this option when you want one flat list of tags (for example: Marketing, Sales, IT).
45+
46+
1. In the navigation tabs (on the left on web, and at the bottom on mobile), select **Workspaces** > **[workspace name]**
47+
2. Select **Tags**.
48+
3. Select **More** > **Import spreadsheet**
49+
- If no tags exist yet, select **Import** from the Tags page.
50+
4. Choose **Single level of tags**.
51+
5. Select **Choose file** then upload your spreadsheet.
52+
6. Map the required columns:
53+
- Name
54+
- Enabled
55+
- Tag GL Code (Optional)
56+
7. Select **Import**.
57+
58+
**Note:** Importing a new file will replace your existing tag list.
59+
60+
---
61+
62+
## How to import multi-level Tags using a spreadsheet
63+
64+
Use this option when you want multiple tag levels (for example: Department and Location). Multi-level tags are available on Control workspaces only.
65+
66+
1. In the navigation tabs (on the left on web, and at the bottom on mobile), select **Workspaces** > **[workspace name]**.
67+
2. Select **Tags**.
68+
3. Select **More** > **Import spreadsheet**.
69+
- If no tags exist yet, select **Import** from the Tags page.
70+
4. Choose **Multi-level tags**.
71+
5. Select **Choose file** then upload your file.
72+
6. Confirm the import settings:
73+
- The first row is the title for each tag list
74+
- These are independent tags
75+
- There is a GL code in the adjacent column (if applicable)
76+
7. Select **Import**.
77+
78+
The linked templates can be used to import multi-level tags:
79+
- [Dependent tags with GL codes](https://help.expensify.com/assets/Files/Dependent+with+GL+codes+format.csv)
80+
- [Dependent tags without GL codes](https://help.expensify.com/assets/Files/Dependent+without+GL+codes+format.csv)
81+
- [Independent tags with GL codes](https://help.expensify.com/assets/Files/Independent+with+GL+codes+format.csv)
82+
- [Independent tags without GL codes](https://help.expensify.com/assets/Files/Independent+without+GL+codes+format.csv)
83+
84+
**Notes:**
85+
- Only CSV and TSV files are supported for multi-level tag imports. A single file can include up to 50,000 tags.
86+
87+
---
88+
89+
## How single-level Tags and multi-level Tags affect tag fields on expenses
90+
91+
Single-level Tags and multi-level Tags determine how many tag fields appear on each expense. This directly controls how many “layers” of coding members must complete when submitting expenses.
92+
93+
**Single-level tags:**
94+
- Members see one Tag field on expenses.
95+
- They select one value from a single list (for example: Marketing, Sales, IT).
96+
- Best when you only need one layer of coding.
97+
98+
Example: If you use single-level Tags for Department, members will see one field labeled **Tag** and choose one department.
99+
100+
**Multi-level tags**
101+
102+
- Members see **multiple Tag fields** (one for each level you configure).
103+
- Each level appears as its own field on the expense.
104+
- Best when you need multiple layers of coding (for example: Department and Location).
105+
106+
**Note:**
107+
- With single-level Tags, you can edit or delete individual tags directly in the workspace.
108+
- With multi-level Tags, you must update and re-import your spreadsheet to make changes.
109+
110+
---
111+
112+
## How dependent and independent multi-level Tags work
113+
114+
When using multi-level Tags, you must choose whether the tag levels are **dependent** or **independent**. This determines whether selecting one tag filters the available options in the next level.
115+
116+
**Dependent Tags**
117+
118+
- Lower-level tag options depend on the selection made in the level above.
119+
- When a member selects a value in Level 1, the options in Level 2 (and Level 3, etc.) are filtered to only the valid combinations from your spreadsheet.
120+
- Best when only specific tag combinations are allowed.
121+
122+
Example:
123+
124+
If Level 1 is **State** and Level 2 is **City**, selecting `California` in Level 1 would limit Level 2 options to:
125+
- San Francisco
126+
- San Diego
127+
- Los Angeles
128+
129+
Members would not see cities that don’t belong to California.
130+
131+
**Independent Tags**
132+
133+
- Each tag level is its own separate list.
134+
- Selecting a tag in one level does not filter the available options in other levels.
135+
- Best when all combinations across levels are allowed.
136+
137+
Example:
138+
139+
If Level 1 is **Department** and Level 2 is **Location**, members can choose any department with any location.
140+
141+
When importing multi-level Tags, enable **These are independent tags** to import the levels as independent. If this option is disabled, the Tags will be imported as dependent.
142+
143+
---
144+
145+
## How to delete expense tags
146+
147+
1. In the **navigation tabs** (on the left on web, and at the bottom on mobile), select **Workspaces** > **[workspace name]**.
148+
2. Select **Tags**.
149+
3. Select one or more tags.
150+
4. Choose **Selected** in the top right.
151+
5. Select **Delete tag**.
152+
153+
**Note:** For multi-level tags, individual tags can’t be deleted manually. Upload a new spreadsheet without the tags you want removed.
154+
155+
---
156+
157+
## How to add or edit a tag GL code
158+
159+
Workspaces on the Control plan can assign a GL code to each tag for exporting purposes. Tag GL codes are not visible to members.
160+
161+
1. In the **navigation tabs** (on the left on web, and at the bottom on mobile), select **Workspaces** > **[workspace name]**.
162+
2. Select **Tags**.
163+
3. Select a tag to open its detail panel.
164+
4. Select the **GL Code** field, enter or update the code, then select **Save**.
165+
166+
---
167+
168+
## How Expensify suggests Tags automatically
169+
170+
Expensify may suggest Tags based on how similar expenses were coded previously.
171+
172+
**Note:** Manually applied tags are not overwritten automatically. Suggestions may vary by member and by merchant.
173+
174+
---
175+
176+
# FAQ
177+
178+
## Can I edit expense tags on a submitted expense report?
179+
180+
Yes. You can edit tags until the expense is approved or reimbursed.
181+
182+
Approvers can also edit tags after approval by taking control of the report.
183+
184+
## Can I see an audit trail of tag changes?
185+
186+
Yes. When a tag is changed manually, the update appears in the expense chat.
187+
188+
## What happens if a tag is disabled in my accounting system?
189+
190+
It will be removed from the workspace’s tag list. However, it will still appear on expenses or reports where it was previously applied.
191+
192+
## Why can’t I enable multi-level tags?
193+
194+
Multi-level tags are available on Control workspaces only. If your Control workspace is connected to an accounting integration, you will need to manage tags in your accounting system and sync them into Expensify.
195+
196+
## Can members see Tag GL codes?
197+
198+
No. Tag GL codes are visible only to Workspace Admins. If members need that information, include the GL code in the tag name (for example: `1001 - Marketing`).

0 commit comments

Comments
 (0)