From 13043077820a0486f1a39de6c7b3e6d203c3bbd0 Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Fri, 25 Jul 2025 13:59:58 +0200 Subject: [PATCH 1/9] Implement NumberedList --- help/_plugins/SitePostRender.rb | 32 ++++++++++++++++++- .../HelpComponents/HelpNumberedList.tsx | 25 +++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/components/SidePanel/HelpComponents/HelpNumberedList.tsx diff --git a/help/_plugins/SitePostRender.rb b/help/_plugins/SitePostRender.rb index 8d341bad4bd4..86cb546bc5aa 100644 --- a/help/_plugins/SitePostRender.rb +++ b/help/_plugins/SitePostRender.rb @@ -107,7 +107,8 @@ def self.analyze_used_components(content) 'View' => content.include?(' content.include?(' content.include?(' content.include?(' content.include?(' content.include?(' method(:process_div), 'p' => method(:process_paragraph), 'ul' => method(:process_unordered_list), + 'ol' => method(:process_ordered_list), 'li' => method(:process_list_item), 'h1' => method(:process_heading), 'h2' => method(:process_heading), @@ -264,6 +267,33 @@ def self.process_unordered_list(node, indent_level) TS end + def self.process_ordered_list(node, indent_level) + items = node.xpath('./li').map do |li| + contains_ol = li.xpath('.//ol').any? + + li_parts = li.children.map { |child| html_node_to_RN(child, 0) } + + if contains_ol + indented_li_parts = li_parts.map do |part| + part.lines.map { |line| "#{' ' * (indent_level + 3)}#{line.rstrip}" }.join("\n") + end.join("\n") + + "#{' ' * (indent_level + 2)}<>\n#{indented_li_parts}\n#{' ' * (indent_level + 2)}" + else + "#{' ' * (indent_level + 2)}#{li_parts.join.strip}" + end + end + + <<~TS.chomp + #{' ' * indent_level} + TS + end + def self.process_list_item(node, indent_level) '' # handled in
    end diff --git a/src/components/SidePanel/HelpComponents/HelpNumberedList.tsx b/src/components/SidePanel/HelpComponents/HelpNumberedList.tsx new file mode 100644 index 000000000000..ba6afab3d0b7 --- /dev/null +++ b/src/components/SidePanel/HelpComponents/HelpNumberedList.tsx @@ -0,0 +1,25 @@ +import type {ReactNode} from 'react'; +import React from 'react'; +import {View} from 'react-native'; +import Text from '@components/Text'; +import type {ThemeStyles} from '@styles/index'; + +type HelpNumberedListProps = { + styles: ThemeStyles; + items: ReactNode[]; +}; + +function HelpNumberedList({items, styles}: HelpNumberedListProps) { + return items.map((item, index) => ( + + {`${index + 1}.`} + {item} + + )); +} + +export default HelpNumberedList; From 65f8075f639e7ed7fe28a11d55638a92f3dc8081 Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Fri, 25 Jul 2025 14:00:17 +0200 Subject: [PATCH 2/9] Move distance and scan to different files --- .../:reportID/distance/:backToReport => distance}/index.md | 0 .../:transactionID/:reportID/scan/:backToReport => scan}/index.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename help/ref/{:action/:iouType/start/:transactionID/:reportID/distance/:backToReport => distance}/index.md (100%) rename help/ref/{:action/:iouType/start/:transactionID/:reportID/scan/:backToReport => scan}/index.md (100%) diff --git a/help/ref/:action/:iouType/start/:transactionID/:reportID/distance/:backToReport/index.md b/help/ref/distance/index.md similarity index 100% rename from help/ref/:action/:iouType/start/:transactionID/:reportID/distance/:backToReport/index.md rename to help/ref/distance/index.md diff --git a/help/ref/:action/:iouType/start/:transactionID/:reportID/scan/:backToReport/index.md b/help/ref/scan/index.md similarity index 100% rename from help/ref/:action/:iouType/start/:transactionID/:reportID/scan/:backToReport/index.md rename to help/ref/scan/index.md From 591eaa6ff87b5297ecf659717fe8992847bc1fb4 Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Fri, 25 Jul 2025 14:00:52 +0200 Subject: [PATCH 3/9] Regenerate content --- .../SidePanel/HelpContent/helpContentMap.tsx | 494 ++++++++++-------- 1 file changed, 285 insertions(+), 209 deletions(-) diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 5552db4b3c11..1a3fd2558491 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -5,6 +5,7 @@ import type {ReactNode} from 'react'; import React from 'react'; import {View} from 'react-native'; import BulletList from '@components/SidePanel/HelpComponents/HelpBulletList'; +import NumberedList from '@components/SidePanel/HelpComponents/HelpNumberedList'; import Text from '@components/Text'; import TextLink from '@components/TextLink'; import type {ThemeStyles} from '@styles/index'; @@ -126,159 +127,38 @@ const helpContentMap: HelpContent = { ), }, - ':action': { - children: { - ':iouType': { - children: { - start: { - children: { - ':transactionID': { - children: { - ':reportID': { - children: { - distance: { - children: { - ':backToReport': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Distance Expense - - Easily track mileage costs using Expensify’s built-in map feature. Create and submit distance-based expenses right - from the web, desktop, or mobile app. - - - - Create distance expenses: Click the green + button and choose Create - expense, then select Distance. Enter your starting point and destination. You can also add stops if - needed. - - , - - - Submit for approval: Choose your workspace and confirm the distance, - amount, and date. Add optional notes or categories, then click Create expense to submit the mileage - expense for approval. - - , - - - Log a round-trip: To log a round-trip, use the same location for both - start and finish, and include any stops along the way. - - , - ]} - /> - - ), - }, - }, - }, - scan: { - children: { - ':backToReport': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Scan Receipt - SmartScan automatically extracts expense details from receipt images. - How to Scan - - What SmartScan Detects - - Amount and currency - , - - Merchant name and location - , - - Date of purchase - , - - Tax information (when visible) - , - - Category suggestions based on merchant type - , - ]} - /> - Supported Receipt Types - - Photos - Take with your device camera - , - - Email receipts - Forward to receipts@expensify.com - , - - PDF receipts - Upload from your device - , - - Screenshots - From apps or websites - , - ]} - /> - Tips for Best Results - Ensure receipt text is clear and readable, - Include the full receipt in the image, - Good lighting improves accuracy, - Straight angles work better than tilted photos, - ]} - /> - After Scanning - Review extracted details for accuracy, - Add description, category, or tags as needed, - SmartScan learns from your corrections, - ]} - /> - Related Links - - - Create an Expense - - , - - - Free Features in Expensify - - , - ]} - /> - - ), - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, + distance: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Distance Expense + + Easily track mileage costs using Expensify’s built-in map feature. Create and submit distance-based expenses right from the web, desktop, or mobile app. + + + + Create distance expenses: Click the green + button and choose Create expense, then select Distance. Enter your + starting point and destination. You can also add stops if needed. + + , + + + Submit for approval: Choose your workspace and confirm the distance, amount, and date. Add optional notes or + categories, then click Create expense to submit the mileage expense for approval. + + , + + + Log a round-trip: To log a round-trip, use the same location for both start and finish, and include any stops along + the way. + + , + ]} + /> + + ), }, r: { children: { @@ -579,6 +459,112 @@ const helpContentMap: HelpContent = { ), }, + scan: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Scan Receipt + SmartScan automatically extracts expense details from receipt images. + How to Scan + + Click the + button and select Create expense + , + + Choose Scan + , + Upload an image or take a photo of your receipt, + SmartScan extracts merchant, date, amount, and currency, + Choose your workspace and add any required details, + + Click Create expense + , + ]} + /> + What SmartScan Detects + + Amount and currency + , + + Merchant name and location + , + + Date of purchase + , + + Tax information (when visible) + , + + Category suggestions based on merchant type + , + ]} + /> + Supported Receipt Types + + Photos - Take with your device camera + , + + Email receipts - Forward to receipts@expensify.com + , + + PDF receipts - Upload from your device + , + + Screenshots - From apps or websites + , + ]} + /> + Tips for Best Results + Ensure receipt text is clear and readable, + Include the full receipt in the image, + Good lighting improves accuracy, + Straight angles work better than tilted photos, + ]} + /> + After Scanning + Review extracted details for accuracy, + Add description, category, or tags as needed, + SmartScan learns from your corrections, + ]} + /> + Related Links + + + Create an Expense + + , + + + Free Features in Expensify + + , + ]} + /> + + ), + }, workspaces: { children: { ':policyID': { @@ -1099,7 +1085,20 @@ const helpContentMap: HelpContent = { /> Adding Members - + + Under Workspaces > [Workspace Name] > Members, click{' '} + Invite Member + , + Enter name, email, or phone number, + Choose a role (defaults to Member), + + Click Invite + , + ]} + /> Alternative: Share the workspace URL or QR code from{' '} Account > Profile > Share @@ -1109,12 +1108,44 @@ const helpContentMap: HelpContent = { Change Role: - + Click the member’s name, + + Click Role and select new role + , + Confirm changes, + ]} + /> Remove Member: + Click the member’s name, + + Click Remove from Workspace + , + Confirm removal, + ]} + /> Transfer Ownership of a Workspace + + Go to Members and click current Owner + , + + Click Transfer Owner + , + Confirm transfer, + You become the new owner, + ]} + /> Learn More Note: This setting requires the Control plan. - + + Under Workspaces > More Features, toggle on Report fields + , + + Head to Workspaces > [Workspace Name] > Reports to add, edit, or delete fields + , + ]} + /> You can choose from field types like Text, Date, or a List with predefined options — whatever best fits your workflow. Learn more ➡️{' '} Enable Report Fields. @@ -1797,83 +1838,118 @@ const helpContentMap: HelpContent = { search: { content: ({styles}: {styles: ThemeStyles}) => ( - Reports - Virtually all data can be analyzed and reported upon in the Reports page. The major elements of this page include: - Data type - Start first by choosing the type of data you want to analyze, which can be: + Reports Page + + The Reports page helps you explore and filter all reports and related expenses. It complements the Inbox by giving you a complete view of your expense history and + what expenses and reports require your action. Use this page to create and download spending reports, track report actions, and view the recent expense activity on + your workspace(s). + + + Expenses & Reports - Expense - Individual standalone expenses. + + Managing expenses: Click on any expense row to see its details in a side panel. Use checkboxes to select multiple + expenses, then use bulk actions like Move, Download, or Delete from the action menu. + + , + + + Filters: Looking for something specific? Use filters to narrow things down by date, category, merchant, tag, + workspace, or report status. You can also combine filters with keywords for even more precise results. + , - Expense reports - Groups of expenses processed in a batch. + + Sort reports by status: - Draft – Only you can see it - Outstanding – Waiting on someone else - Approved – Ready to + pay - Done or Paid – All wrapped up + , - Chats - Comments written by you and others. + + Download what you need: Generate a report to download filtered expense data as a CSV. Perfect for spreadsheets, + monthly close, or syncing with accounting. + , + ]} + /> + + Chats + - Invoices - Expenses submitted to clients for payment. + + Viewing report previews: Each report preview shows up right in your workspace chat with the status, up to 10 + expenses, and buttons like Submit or Approve, depending on your role. + , - Trips - Travel expenses booked with Expensify Travel or scanned with SmartScan. + + Filter chats: Use filters to find the exact chat you’re looking for. + , ]} /> - Search - A quick method of narrowing the results by keyword or more. - State filter - Simple methods to filter the results by “state”, including: + + To-Do - All + + Stay on top of tasks: The To-do section shows exactly what needs your attention. This is your go-to spot to keep + things moving. + + , + + + Action items: Whether you need to submit, approve, or pay expenses, you can click the corresponding action to + complete any outstanding to-dos. + , - <> - Expenses/Expense/Invoices reports: - - Draft - Only you can see that hasn’t been shared yet., - Outstanding - Submitted to someone and awaiting action., - Approved - Approved, but awaiting payment., - Done - Fully processed, no further action needed., - Paid - Fully paid, no further action needed., - ]} - /> - , - <> - Chats: - - Unread - Not seen yet by you., - Sent - Sent by you., - Attachments - Image, movie, or document., - Links - Hyperlinks., - Pinned - Highlighted by you as important., - ]} - /> - , - <> - Trips: - - Current - Happening or in the future., Past - Already happened.]} - /> - , ]} /> - Results - The core of the Reports page are the search results themselves. + + Learn More Select a row to see additional options., Tap on a row to see more detail.]} + items={[ + + + The Reports Page + + , + + + Understanding Reports Statuses and Actions + + , + + + Suggested Search + + , + + + Search and Download Expenses + + , + ]} /> ), From 9388bf48063ff1c6c3cee4812ba3d26719884f69 Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Tue, 12 Aug 2025 16:34:54 +0200 Subject: [PATCH 4/9] fix: prevent side panel actions when side panel NVP is undefined --- src/components/SidePanel/index.tsx | 8 +++++++- src/hooks/useSidePanel.ts | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/components/SidePanel/index.tsx b/src/components/SidePanel/index.tsx index 9042c4eb2e95..1e75f1aa2470 100644 --- a/src/components/SidePanel/index.tsx +++ b/src/components/SidePanel/index.tsx @@ -3,8 +3,14 @@ import useSidePanel from '@hooks/useSidePanel'; import Help from './HelpModal'; function SidePanel() { - const {isSidePanelTransitionEnded, shouldHideSidePanel, sidePanelTranslateX, shouldHideSidePanelBackdrop, closeSidePanel} = useSidePanel(); + const {sidePanelNVP, isSidePanelTransitionEnded, shouldHideSidePanel, sidePanelTranslateX, shouldHideSidePanelBackdrop, closeSidePanel} = useSidePanel(); + // Side panel can't be displayed if NVP is undefined + if (!sidePanelNVP) { + return null; + } + + // Hide side panel once animation ends if (isSidePanelTransitionEnded && shouldHideSidePanel) { return null; } diff --git a/src/hooks/useSidePanel.ts b/src/hooks/useSidePanel.ts index 8e56da3bf89b..aa3a5b798b20 100644 --- a/src/hooks/useSidePanel.ts +++ b/src/hooks/useSidePanel.ts @@ -91,20 +91,30 @@ function useSidePanel() { }, [shouldHideSidePanel, shouldApplySidePanelOffset]); const openSidePanel = useCallback(() => { + // User shouldn't be able to open side panel if side panel NVP is undefined + if (!sidePanelNVP) { + return; + } + setIsSidePanelTransitionEnded(false); KeyboardUtils.dismiss(); SidePanelActions.openSidePanel(!isExtraLargeScreenWidth); - }, [isExtraLargeScreenWidth]); + }, [isExtraLargeScreenWidth, sidePanelNVP]); const closeSidePanel = useCallback( (shouldUpdateNarrow = false) => { + // User shouldn't be able to close side panel if side panel NVP is undefined + if (!sidePanelNVP) { + return; + } + setIsSidePanelTransitionEnded(false); SidePanelActions.closeSidePanel(!isExtraLargeScreenWidth || shouldUpdateNarrow); // Focus the composer after closing the Side Panel focusComposerWithDelay(ReportActionComposeFocusManager.composerRef.current, CONST.ANIMATED_TRANSITION + CONST.COMPOSER_FOCUS_DELAY)(true); }, - [isExtraLargeScreenWidth], + [isExtraLargeScreenWidth, sidePanelNVP], ); return { From 5408586af618d8228194e38b650f29710f0d280a Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Wed, 13 Aug 2025 19:12:08 +0200 Subject: [PATCH 5/9] Regenerate content and split r/ into two markdowns --- help/ref/r/:chat/index.md | 36 + help/ref/r/index.md | 22 +- .../SidePanel/HelpContent/helpContentMap.tsx | 3168 +++++++---------- 3 files changed, 1309 insertions(+), 1917 deletions(-) create mode 100644 help/ref/r/:chat/index.md diff --git a/help/ref/r/:chat/index.md b/help/ref/r/:chat/index.md new file mode 100644 index 000000000000..00a2d1d336b1 --- /dev/null +++ b/help/ref/r/:chat/index.md @@ -0,0 +1,36 @@ +--- +layout: product +title: Expensify Chat +--- + +# Chat + +Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated "chat", which you can use to record additional details, or collaborate with others. Every chat has the following components: + +## Header + +This shows who you are chatting with (or what you are chatting about). You can press the header for more details on the chat, or additional actions to take upon it. + +## Comments + +The core of the chat are its comments, which come in many forms: + +- **Text** – Rich text messages stored securely and delivered via web, app, email, or SMS. +- **Images & Documents** – Insert photos, screenshots, movies, PDFs, or more, using copy/paste, drag/drop, or the attach button. +- **Expenses** – Share an expense in the chat, either to simply track and document it, or to submit for reimbursement. +- **Tasks** – Record a task, and optionally assign it to someone (or yourself!). + +## Actions + +Hover (or long press) on a comment to see additional options, including: + +- **React** – Throw a ♥️😂🔥 like on anything! +- **Reply in thread** – Go deeper by creating a new chat on any comment. +- **Mark unread** – Flag it for reading later, at your convenience. + +## Composer + +Use the composer at the bottom to write new messages: + +- **Markdown** – Format text using **bold**, *italics*, and [more](https://help.expensify.com/articles/new-expensify/chat/Send-and-format-chat-messages). +- **Mention** – Invite or tag anyone in the world to any chat by putting an `@` in front of their email address or phone number (e.g., **@awong@marslink.web**, or **@415-867-5309**). diff --git a/help/ref/r/index.md b/help/ref/r/index.md index 93a70ead94a8..ac8dccebcb75 100644 --- a/help/ref/r/index.md +++ b/help/ref/r/index.md @@ -1,4 +1,24 @@ --- layout: product -title: Inbox Overview +title: Expensify Inbox --- + +# Inbox + +The Inbox is a prioritized "to do" list, highlighting exactly what you need to do next. It consists of: + +## Priorities + +At the top of the Inbox are the most important tasks you should do first, which include: + +- Expense reports waiting on you +- Tasks assigned to you +- Chats that have mentioned you +- Anything you have pinned + +## Chats + +Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: + +- **Most Recent** – Lists every chat, ordered by whichever was most recently active. +- **Focus** – Only lists chats with unread messages, sorted alphabetically. \ No newline at end of file diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 1ffc6d264b9a..188215ee8852 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -1,16 +1,13 @@ -/* eslint-disable react/jsx-key */ - /* eslint-disable react/no-unescaped-entities */ - /* eslint-disable @typescript-eslint/naming-convention */ import type {ReactNode} from 'react'; import React from 'react'; import {View} from 'react-native'; +import type {ThemeStyles} from '@styles/index'; import BulletList from '@components/SidePanel/HelpComponents/HelpBulletList'; -import NumberedList from '@components/SidePanel/HelpComponents/HelpNumberedList'; import Text from '@components/Text'; import TextLink from '@components/TextLink'; -import type {ThemeStyles} from '@styles/index'; +import NumberedList from '@components/SidePanel/HelpComponents/HelpNumberedList'; type ContentComponent = (props: {styles: ThemeStyles}) => ReactNode; @@ -26,1939 +23,1278 @@ type HelpContent = { }; const helpContentMap: HelpContent = { - children: { - home: { - content: ({styles}: {styles: ThemeStyles}) => ( + children: { + home: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Navigating Expensify + Get familiar with Expensify’s intuitive navigation system designed for easy access to all your tools. + Left-hand Navigation Bar + The vertical left-hand bar is your main navigation hub: + Expensify logo - Click to return to your Inbox (homepage), + Inbox - Your personalized dashboard with action items and reminders, + Reports - Access all your expense reports and filtering tools, + Workspaces - Manage company and personal workspace settings, + Account - Personal settings, profile, and preferences, + Global Create button - Quick access to create reports, expenses, invoices, and chats + ]} + /> + Inbox Overview + Your Inbox serves as the homepage and shows: + Smart reminders to submit, approve, or reconcile expenses, + Real-time updates on recent actions and flagged reports, + List of chats with other employees in your organization, + Personalized action items based on your role and activity + ]} + /> + Chat Features + Every expense, report, or workspace has an associated chat for collaboration: + Text messages with rich formatting support, + Images & Documents via copy/paste, drag/drop, or attach button, + Expenses to track and submit for reimbursement, + Tasks to assign and manage work items, + Mentions to invite anyone by email or phone number + ]} + /> + Reports Section + The Reports tab consolidates filtering and reporting: + Use the Workspace filter inside the Filters menu to refine results, + Apply filters and queries that update automatically, + View all expense reports across your workspaces + ]} + /> + Quick Actions + Use the green Create button to quickly: + Start a new chat or conversation, + Create an expense report, + Add an expense or receipt, + Create a task or invoice, + Submit expenses for approval + ]} + /> + + Tip: Navigation is consistent across web, mobile, and desktop versions of Expensify. + + ), + }, + distance: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Distance Expense + Easily track mileage costs using Expensify’s built-in map feature. Create and submit distance-based expenses right from the web, desktop, or mobile app. + + Create distance expenses: Click the green + button and choose Create expense, then select Distance. Enter your starting point and destination. You can also add stops if needed. + , + + Submit for approval: Choose your workspace and confirm the distance, amount, and date. Add optional notes or categories, then click Create expense to submit the mileage expense for approval. + , + + Log a round-trip: To log a round-trip, use the same location for both start and finish, and include any stops along the way. + + ]} + /> + + ), + }, + r: { + children: { + ":concierge": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Concierge + Concierge is available 24/7 to answer any question you have about anything — whether that’s how to get set up, how to fix a problem, or general best practices. + Concierge is a bot, but it’s really smart and can escalate you to a human whenever you want. Say hi — it’s friendly! + + ), + }, + ":expense": { + children: { + ":scan": { + content: ({styles}: {styles: ThemeStyles}) => ( - Navigating Expensify - Get familiar with Expensify’s intuitive navigation system designed for easy access to all your tools. - Left-hand Navigation Bar - - The vertical left-hand bar is your main navigation hub: - - - Expensify logo - Click to return to your Inbox (homepage) - , - - Inbox - Your personalized dashboard with action items and reminders - , - - Reports - Access all your expense reports and filtering tools - , - - Workspaces - Manage company and personal workspace settings - , - - Account - Personal settings, profile, and preferences - , - - Global Create button - Quick access to create reports, expenses, invoices, and chats - , - ]} - /> - Inbox Overview - - Your Inbox serves as the homepage and shows: - - Smart reminders to submit, approve, or reconcile expenses, - Real-time updates on recent actions and flagged reports, - List of chats with other employees in your organization, - Personalized action items based on your role and activity, - ]} - /> - Chat Features - Every expense, report, or workspace has an associated chat for collaboration: - - Text messages with rich formatting support - , - - Images & Documents via copy/paste, drag/drop, or attach button - , - - Expenses to track and submit for reimbursement - , - - Tasks to assign and manage work items - , - - Mentions to invite anyone by email or phone number - , - ]} - /> - Reports Section - - The Reports tab consolidates filtering and reporting: - - - Use the Workspace filter inside the Filters menu to refine results - , - Apply filters and queries that update automatically, - View all expense reports across your workspaces, - ]} - /> - Quick Actions - - Use the green Create button to quickly: - - Start a new chat or conversation, - Create an expense report, - Add an expense or receipt, - Create a task or invoice, - Submit expenses for approval, - ]} - /> - - - Tip: Navigation is consistent across web, mobile, and desktop versions of Expensify. - + Scanned + A “scanned” expense was created by extracting the relevant details using the Concierge AI. - ), - }, - distance: { - content: ({styles}: {styles: ThemeStyles}) => ( + ), + }, + ":manual": { + content: ({styles}: {styles: ThemeStyles}) => ( - Distance Expense - - Easily track mileage costs using Expensify’s built-in map feature. Create and submit distance-based expenses right from the web, desktop, or mobile app. - - - - Create distance expenses: Click the green + button and choose Create expense, then select Distance. Enter your - starting point and destination. You can also add stops if needed. - - , - - - Submit for approval: Choose your workspace and confirm the distance, amount, and date. Add optional notes or - categories, then click Create expense to submit the mileage expense for approval. - - , - - - Log a round-trip: To log a round-trip, use the same location for both start and finish, and include any stops along - the way. - - , - ]} - /> + Manual + A “manual” expense has had all its details specified by the workspace member. It was not imported from any system, or scanned from a receipt. - ), - }, - r: { - children: { - ':concierge': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Concierge - - Concierge is available 24/7 to answer any question you have about anything — whether that’s how to get set up, how to fix a problem, or general best - practices. Concierge is a bot, but it’s really smart and can escalate you to a human whenever you want. Say hi — it’s friendly! - - - ), - }, - ':expense': { - children: { - ':scan': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Scanned - A “scanned” expense was created by extracting the relevant details using the Concierge AI. - - ), - }, - ':manual': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Manual - - A “manual” expense has had all its details specified by the workspace member. It was not imported from any system, or scanned from a receipt. - - - ), - }, - ':pendingExpensifyCard': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Expensify Card (pending) - - A “pending” Expensify Card expense represents a purchase that was recently made on the card, but has not yet “posted” – meaning, it has not been - formally recognized as a final, complete transaction. - - Any changes made to this expense will be preserved when the expense posts, typically 2-7 days later. - Pending transactions cannot be approved, as the final expense amount will not be confirmed until it posts. - - ), - }, - ':expensifyCard': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Expensify Card - An “Expensify Card” expense corresponds to a “posted” (meaning, finalized by the bank) purchase. - - Expensify Card expenses cannot be reimbursed as they are centrally paid by the bank account linked to the workspace. - - - ), - }, - }, - content: ({styles}: {styles: ThemeStyles}) => ( - - Expense - Every expense gets a dedicated chat to discuss that specific expense. The expense consists of: - - Receipt – Attach a photo or document to this expense. - , - - Amount – The financial total of this transaction. - , - - Description – A general explanation of what this expense was for. - , - - Merchant – The business this purchase was made at. - , - - Date – The day on which the purchase was made. - , - ]} - /> - - The expense chat is shared with everyone in the approval flow, and will maintain an audit trail of all historical changes. - - - ), - }, - ':policyAdmins': { - content: ({styles}: {styles: ThemeStyles}) => ( - - #admins - - Every workspace automatically receives a special #admins chat room. Every admin is automatically added to this room as a member. The #admins room is used for - several purposes: - - - - Talking with Concierge, your setup specialist, or your account manager – When you first create the workspace, - Concierge and a setup specialist will be added. Feel free to ask any setup questions you have about how to configure the workspace, onboard your - team, connect your accounting, or anything else you might need. - - , - - - Monitoring workspace changes – Every #admins room shows an audit trail of any configuration changes or - significant events happening inside the workspace. - - , - - - Chatting with other admins – The #admins room is a useful space for workspace admins to chat with each other - about anything, whether or not it relates to Expensify. - - , - ]} - /> - - ), - }, - ':expenseReport': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Expense Report - Every expense report gets a dedicated chat to discuss expenses, approvals, or anything you like. The expense report chat: - Is shared with everyone in the approval flow configured inside the workspace., - Will maintain an audit trail of all historical workflow actions (i.e., approvals)., - ]} - /> - - Press the attach button to add more expenses, or press the header for more options. Press on any expense to go deeper. - - - ), - }, - ':policyExpenseChat': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workspace - - Every workspace member gets a special chat between them and all workspace admins. This is a good place for workspace members to ask questions about expense - policy, for workspace admins to explain changes, or for any “formal” conversation to occur between members and admins. Press the attach button to: - - - Create expense – This will submit an expense to the workspace for reimbursement. - , - - Split expense – This will split an expense between the member and the workspace (e.g., for a business meal that - brings a spouse). - , - ]} - /> - All past expense reports are processed here and stored for historical reference. - - ), - }, - ':policyAnnounce': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Announce Room (#announce) - - The #announce room is a chat space available to all workspace members. It’s perfect for sharing company-wide updates, policy changes, or event reminders. The - #announce room is accessible from your Inbox in the left-hand menu. - - - - Post company-wide announcements: All members can post in #announce by default, making it easy to communicate - across the workspace. - - , - - - Restrict posting to admins: Workspace admins can limit posting to admins only. Open the #announce room, click - the room header, select Settings, and change Who can post to Admins only. - - , - - - Everyone can read messages: Even if posting is limited to admins, all workspace members can still view - messages in the #announce room. - - , - ]} - /> - - ), - }, + ), }, - content: ({styles}: {styles: ThemeStyles}) => ( + ":pendingExpensifyCard": { + content: ({styles}: {styles: ThemeStyles}) => ( - Chat - - Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated “chat”, which you can use to record additional details, - or collaborate with others. Every chat has the following components: - - Header - - This shows who you are chatting with (or what you are chatting about). You can press the header for more details on the chat, or additional actions to take upon it. - - Comments - The core of the chat are its comments, which come in many forms: - - Text – Rich text messages stored securely and delivered via web, app, email, or SMS. - , - - Images & Documents – Insert photos, screenshots, movies, PDFs, or more, using copy/paste, drag/drop, or the attach - button. - , - - Expenses – Share an expense in the chat, either to simply track and document it, or to submit for reimbursement. - , - - Tasks – Record a task, and optionally assign it to someone (or yourself!). - , - ]} - /> - Actions - Hover (or long press) on a comment to see additional options, including: - - React – Throw a ♥️😂🔥 like on anything! - , - - Reply in thread – Go deeper by creating a new chat on any comment. - , - - Mark unread – Flag it for reading later, at your convenience. - , - ]} - /> - Composer - Use the composer at the bottom to write new messages: - - Markdown – Format text using bold, italics, - and{' '} - - more - - . - , - - Mention – Invite or tag anyone in the world to any chat by putting an @ in front of their email address or phone number - (e.g., @awong@marslink.web, or @415-867-5309). - , - ]} - /> - - Inbox - The Inbox is a prioritized “to do” list, highlighting exactly what you need to do next. It consists of: - Priorities - At the top of the Inbox are the most important tasks you should do first, which include: - Expense reports waiting on you, - Tasks assigned to you, - Chats that have mentioned you, - Anything you have pinned, - ]} - /> - Chats - Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: - - Most Recent – Lists every chat, ordered by whichever was most recently active. - , - - Focus – Only lists chats with unread messages, sorted alphabetically. - , - ]} - /> + Expensify Card (pending) + A “pending” Expensify Card expense represents a purchase that was recently made on the card, but has not yet “posted” – meaning, it has not been formally recognized as a final, complete transaction. + Any changes made to this expense will be preserved when the expense posts, typically 2-7 days later. + Pending transactions cannot be approved, as the final expense amount will not be confirmed until it posts. - ), - }, - scan: { - content: ({styles}: {styles: ThemeStyles}) => ( + ), + }, + ":expensifyCard": { + content: ({styles}: {styles: ThemeStyles}) => ( - Scan Receipt - SmartScan automatically extracts expense details from receipt images. - How to Scan - - Click the + button and select Create expense - , - - Choose Scan - , - Upload an image or take a photo of your receipt, - SmartScan extracts merchant, date, amount, and currency, - Choose your workspace and add any required details, - - Click Create expense - , - ]} - /> - What SmartScan Detects - - Amount and currency - , - - Merchant name and location - , - - Date of purchase - , - - Tax information (when visible) - , - - Category suggestions based on merchant type - , - ]} - /> - Supported Receipt Types - - Photos - Take with your device camera - , - - Email receipts - Forward to receipts@expensify.com - , - - PDF receipts - Upload from your device - , - - Screenshots - From apps or websites - , - ]} - /> - Tips for Best Results - Ensure receipt text is clear and readable, - Include the full receipt in the image, - Good lighting improves accuracy, - Straight angles work better than tilted photos, - ]} - /> - After Scanning - Review extracted details for accuracy, - Add description, category, or tags as needed, - SmartScan learns from your corrections, - ]} - /> - Related Links - - - Create an Expense - - , - - - Free Features in Expensify - - , - ]} - /> + Expensify Card + An “Expensify Card” expense corresponds to a “posted” (meaning, finalized by the bank) purchase. + Expensify Card expenses cannot be reimbursed as they are centrally paid by the bank account linked to the workspace. - ), + ), + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Expense + Every expense gets a dedicated chat to discuss that specific expense. The expense consists of: + Receipt – Attach a photo or document to this expense., + Amount – The financial total of this transaction., + Description – A general explanation of what this expense was for., + Merchant – The business this purchase was made at., + Date – The day on which the purchase was made. + ]} + /> + The expense chat is shared with everyone in the approval flow, and will maintain an audit trail of all historical changes. + + ), }, - workspaces: { - children: { - ':policyID': { - children: { - accounting: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Accounting Integrations - - Link your workspace directly to your accounting system to make expense tracking smarter and smoother. We’ll automatically sync your chart of accounts - so your team can code expenses accurately — and approved reports flow right back into your books. Less manual work, more peace of mind. - - - Once connected, you can fine-tune your setup with: - - Import settings to control what data comes from your accounting system., - Export settings to choose how expense reports are sent back., - Advanced options for automation, such as auto-sync and employee settings., - ]} - /> - - Supported Integrations - - QuickBooks Online - - Real-time expense sync, - Category and vendor mapping, - Tax rate sync, - ]} - /> - - QuickBooks Desktop - - File-based import/export, - Chart of accounts sync, - Custom field mapping, - ]} - /> - - Xero - - Auto-sync approved reports, - Import tracking categories, - Manage tax rates seamlessly, - ]} - /> - - NetSuite - - Built for complex orgs with multi-entity support, - Custom dimension mapping, - Automated bill payments, - ]} - /> - - Sage Intacct - - Track departments, classes, and more, - Multi-currency support, - Advanced approval workflows, - ]} - /> - - What Syncs Automatically - - From your accounting system: - - Chart of accounts (as categories), - Classes, departments, locations (as tags), - Tax rates and customers, - Vendors and bill payment accounts, - ]} - /> - - To your accounting system: - - Approved expense reports, - Company card transactions, - Vendor bills and journal entries, - Payment records and reconciliation data, - ]} - /> - - Learn More - - - Connect to QuickBooks Online - - , - - - Connect to Xero - - , - - - Connect to NetSuite - - , - ]} - /> - - ), - }, - 'distance-rates': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Distance Rates - - Distance rates make it easy to pay employees when they use their personal vehicles for work. You can set different rates for different vehicle types - or travel situations. Just make sure at least one rate is active when this feature is turned on. - - - - - How to set up rates: Under{' '} - Workspaces > [Workspace Name] > Distance rates and choose{' '} - Add rate. Enter how much you’ll reimburse per mile or kilometer and click{' '} - Save. - - , - - - Multiple rate options: Customize rates for personal cars, company vehicles, or different types of - trips. - - , - - - Managing your rates: To save time, you can turn rates on or off, update amounts, or manage them in - bulk. - - , - ]} - /> - - - You can learn more about managing distance rates here ➡️ Set Distance Rates. - - - ), - }, - workflows: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workflows - - Setting up workflows on your workspace automates how expenses move from submission to payment. They keep things organized and help you control when - expenses are submitted, who approves them, and how they get paid. - - - Note: Only admins can configure workspace workflows. - - - - - Approval setup: Assign approvers to review expenses before they’re paid. You can even customize - approvers for different team members. - - , - - - Submission timing: Pick a daily or weekly schedule for automatic expense submission so no one forgets - to submit their expenses. - - , - - - Automated payments: Link your business bank account, and Expensify will automatically process - payments for approved expenses and invoices. - - , - ]} - /> - - Learn More - - - Workspace Workflows - - , - - - Approval Settings - - , - ]} - /> - - ), - }, - 'expensify-card': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Expensify Card - - The Expensify Card is a smart company card with real-time controls and built-in cash back. It allows you to issue unlimited virtual cards, set custom - limits for each employee, and manage everything in one place. - - - Note: You’ll need a connected US business bank account to get started. - - - - - Issue cards: Hand out virtual or physical cards with flexible spending controls, such as smart - limits, monthly caps, or fixed amounts. - - , - - - Smarter spending controls: Set custom limits, block certain merchant types, and track every swipe in - real time. - - , - - - Easy card management: As a workspace admin, you can see all issued cards at a glance. You can adjust - limits, rename cards, or deactivate them whenever you need to. - - , - ]} - /> - - - More details on setting up the Expensify Card for your business can be found here ➡️ The Expensify Card. - - - ), - }, - tags: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Tag Settings - - Tags help you track extra details on expenses—like projects, cost centers, locations, or clients—so you can organize your spend beyond just - categories. You can add them manually or sync them automatically from your accounting software. - - - - - How to add tags: Click the green + button to add tags manually, or upload up to 50,000 at once with a - spreadsheet. Using an accounting integration? Your tags will sync automatically. - - , - - - Organizing tags: Use dependent tags (where one relies on another) for more structured tracking, or - keep things simple with independent tags. - - , - - - Automatic tagging that gets smarter: Expensify learns how you tag expenses and starts doing it for - you, speeding up and simplifying your workflow over time. - - , - ]} - /> - - Learn More - - - Create Tags - - , - - - Require Tags for Expenses - - , - ]} - /> - - ), - }, - 'per-diem': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Per Diem Settings - - Per diem makes it easy to cover travel or recurring allowances with fixed daily rates—no need to track every coffee or cab ride. Employees just pick a - rate and submit. You can create rates manually or import them from a spreadsheet. - - - - - Set up rates: Create daily rates for different locations, meal types, or travel needs. Just enter the - amount, and you’re done! - - , - - - Default categories: Assign a default category to keep all your per diem expenses organized and your - accounting on track. - - , - ]} - /> - - - Learn more about setting up per diem rates here ➡️ Per Diem Settings. - - - ), - }, - taxes: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Tax Settings - - Track VAT, GST, or any other regional taxes right in Expensify. Perfect for staying compliant—especially if you’re working in non-USD currencies. You - can set up different tax rates for your workspace currency and for foreign currencies, too. - - - - - How to set up tax rates: Click the green + button to add a tax rate. Just enter the tax name, - percentage, and tax code for your records. - - , - - - Default tax settings: Set separate default rates for your workspace currency and foreign currencies, - so everything’s accurate no matter where you’re spending. - - , - - - Managing tax rates: You can turn rates on or off, update their values, or delete them entirely. Use - bulk actions to move faster, or make changes one at a time. - - , - ]} - /> - - - Learn more about workspace tax settings here ➡️ Track Taxes. - - - ), - }, - rules: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workspace Rules - - Rules help you stick to your expense policy without micromanaging. Set limits, require receipts, and automate approvals. Expensify checks every - expense against your rules and flags anything that’s off. - - - Note: Workspace rules are only available on the Control plan. - - - - - Expense requirements: Decide when receipts are required, set a max spend per expense, and control how - far back expenses can be submitted. - - , - - - Prohibited expenses: Let Expensify’s AI catch restricted items like alcohol, gambling, or tobacco—no - manual review needed. - - , - - - Automatic approvals: Save time by auto-approving compliant reports under a certain amount. You can - even randomly audit a few to keep everyone honest. - - , - ]} - /> - - Learn More - - - Workspace Rules - - , - - - Prohibited Expense Rules - - , - ]} - /> - - ), - }, - members: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workspace Members - - Invite teammates to your workspace and assign roles to control their access and keep the expense process running smoothly. - - - Member Roles - - Admin - - Full workspace control and settings access, - Add/remove members and change roles, - Set up integrations and payment methods, - Approve and pay expenses, - ]} - /> - - Member - - Submit expenses and create reports, - Participate in workspace chats, - View assigned expenses and reports, - ]} - /> - - Auditor - - View all workspace reports (read-only), - Add comments, but cannot modify expenses, - No approval or payment permissions, - ]} - /> - - Adding Members - - Under Workspaces > [Workspace Name] > Members, click{' '} - Invite Member - , - Enter name, email, or phone number, - Choose a role (defaults to Member), - - Click Invite - , - ]} - /> - - Alternative: Share the workspace URL or QR code from{' '} - Account > Profile > Share - - - Managing Members - - Change Role: - - Click the member’s name, - - Click Role and select new role - , - Confirm changes, - ]} - /> - - Remove Member: - - Click the member’s name, - - Click Remove from Workspace - , - Confirm removal, - ]} - /> - - Transfer Ownership of a Workspace - - Go to Members and click current Owner - , - - Click Transfer Owner - , - Confirm transfer, - You become the new owner, - ]} - /> - - Learn More - - - Managing Workspace Members - - , - - - Add Approvals - - , - ]} - /> - - ), - }, - 'company-cards': { - content: ({styles}: {styles: ThemeStyles}) => ( - - Company Cards - - Already have business credit cards? You can connect them to Expensify to automatically pull in transactions. Most major banks and card providers are - supported. - - - - - How to connect cards: Link your corporate card program to your workspace, assign the cards to the - corresponding cardholder, and transactions will start syncing automatically as they post—no manual entry needed. - - , - - - Exporting expenses: Send card transactions to your accounting system, either to a shared account or - separate ones for each cardholder. - - , - - - eReceipts: Turn on eReceipts to automatically generate digital receipts for USD transactions under - $75—no more chasing paper ones. - - , - ]} - /> - - - More details on connecting your company card program can be found here ➡️ Company Card Settings. - - - ), - }, - reportFields: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Report Settings - Keep your reports clean, consistent, and easy to manage by customizing titles and adding report-level details. - - - - Report title: Use the Custom Report Names feature (under workspace Rules) to create naming templates - for new reports. It’s a smarter way to keep things organized and make reports easier to find. You also have the option to prevent members - from changing the custom report names you set. - - , - - - Report fields: Collect high-level info—like project names, client codes, or trip types—that applies - to the whole report, not just individual expenses. Report fields are filled out once and apply to all expenses in that report. - - , - ]} - /> - - Turn on and Manage Report Fields - - Note: This setting requires the Control plan. - - - Under Workspaces > More Features, toggle on Report fields - , - - Head to Workspaces > [Workspace Name] > Reports to add, edit, or delete fields - , - ]} - /> - - You can choose from field types like Text, Date, or a List with predefined options — whatever best fits your workflow. Learn more ➡️{' '} - Enable Report Fields. - - - ), - }, - categories: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Category Settings - - Categories help you organize expenses so your reports and accounting stay clean and easy to manage. Think of them as your chart of accounts or GL - codes. You can add them manually or, if you use accounting software, import them straight from the integration. - - - - - Category settings made simple: You can toggle categories on or off, add GL codes, and set rules like - receipt requirements or spending limits, all in one place under{' '} - Workspaces > [Workspace Name] > Categories. - - , - - - Smarter categorization, automatically: Expensify learns how you tag your expenses and starts - automatically applying those categories to similar merchants. This means less busywork and more accuracy. - - , - ]} - /> - - Learn More - - - Create Expense Categories - - , - - - Require Categories - - , - ]} - /> - - ), - }, - }, - }, + ":chat": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Chat + Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated “chat”, which you can use to record additional details, or collaborate with others. Every chat has the following components: + Header + This shows who you are chatting with (or what you are chatting about). You can press the header for more details on the chat, or additional actions to take upon it. + Comments + The core of the chat are its comments, which come in many forms: + Text – Rich text messages stored securely and delivered via web, app, email, or SMS., + Images & Documents – Insert photos, screenshots, movies, PDFs, or more, using copy/paste, drag/drop, or the attach button., + Expenses – Share an expense in the chat, either to simply track and document it, or to submit for reimbursement., + Tasks – Record a task, and optionally assign it to someone (or yourself!). + ]} + /> + Actions + Hover (or long press) on a comment to see additional options, including: + React – Throw a ♥️😂🔥 like on anything!, + Reply in thread – Go deeper by creating a new chat on any comment., + Mark unread – Flag it for reading later, at your convenience. + ]} + /> + Composer + Use the composer at the bottom to write new messages: + Markdown – Format text using bold, italics, and more., + Mention – Invite or tag anyone in the world to any chat by putting an @ in front of their email address or phone number (e.g., @awong@marslink.web, or @415-867-5309). + ]} + /> + + ), + }, + ":policyAdmins": { + content: ({styles}: {styles: ThemeStyles}) => ( + + #admins + Every workspace automatically receives a special #admins chat room. Every admin is automatically added to this room as a member. The #admins room is used for several purposes: + + Talking with Concierge, your setup specialist, or your account manager – When you first create the workspace, Concierge and a setup specialist will be added. Feel free to ask any setup questions you have about how to configure the workspace, onboard your team, connect your accounting, or anything else you might need. + , + + Monitoring workspace changes – Every #admins room shows an audit trail of any configuration changes or significant events happening inside the workspace. + , + + Chatting with other admins – The #admins room is a useful space for workspace admins to chat with each other about anything, whether or not it relates to Expensify. + + ]} + /> + + ), + }, + ":expenseReport": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expense Report + Every expense report gets a dedicated chat to discuss expenses, approvals, or anything you like. The expense report chat: + Is shared with everyone in the approval flow configured inside the workspace., + Will maintain an audit trail of all historical workflow actions (i.e., approvals). + ]} + /> + Press the attach button to add more expenses, or press the header for more options. Press on any expense to go deeper. + + ), + }, + ":policyExpenseChat": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace + Every workspace member gets a special chat between them and all workspace admins. This is a good place for workspace members to ask questions about expense policy, for workspace admins to explain changes, or for any “formal” conversation to occur between members and admins. Press the attach button to: + Create expense – This will submit an expense to the workspace for reimbursement., + Split expense – This will split an expense between the member and the workspace (e.g., for a business meal that brings a spouse). + ]} + /> + All past expense reports are processed here and stored for historical reference. + + ), + }, + ":policyAnnounce": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Announce Room (#announce) + The #announce room is a chat space available to all workspace members. It’s perfect for sharing company-wide updates, policy changes, or event reminders. The #announce room is accessible from your Inbox in the left-hand menu. + + Post company-wide announcements: All members can post in #announce by default, making it easy to communicate across the workspace. + , + + Restrict posting to admins: Workspace admins can limit posting to admins only. Open the #announce room, click the room header, select Settings, and change Who can post to Admins only. + , + + Everyone can read messages: Even if posting is limited to admins, all workspace members can still view messages in the #announce room. + + ]} + /> + + ), + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Inbox + The Inbox is a prioritized “to do” list, highlighting exactly what you need to do next. It consists of: + Priorities + At the top of the Inbox are the most important tasks you should do first, which include: + Expense reports waiting on you, + Tasks assigned to you, + Chats that have mentioned you, + Anything you have pinned + ]} + /> + Chats + Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: + Most Recent – Lists every chat, ordered by whichever was most recently active., + Focus – Only lists chats with unread messages, sorted alphabetically. + ]} + /> + + ), + }, + scan: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Scan Receipt + SmartScan automatically extracts expense details from receipt images. + How to Scan + Click the + button and select Create expense, + Choose Scan, + Upload an image or take a photo of your receipt, + SmartScan extracts merchant, date, amount, and currency, + Choose your workspace and add any required details, + Click Create expense + ]} + /> + What SmartScan Detects + Amount and currency, + Merchant name and location, + Date of purchase, + Tax information (when visible), + Category suggestions based on merchant type + ]} + /> + Supported Receipt Types + Photos - Take with your device camera, + Email receipts - Forward to receipts@expensify.com, + PDF receipts - Upload from your device, + Screenshots - From apps or websites + ]} + /> + Tips for Best Results + Ensure receipt text is clear and readable, + Include the full receipt in the image, + Good lighting improves accuracy, + Straight angles work better than tilted photos + ]} + /> + After Scanning + Review extracted details for accuracy, + Add description, category, or tags as needed, + SmartScan learns from your corrections + ]} + /> + Related Links + Create an Expense, + Free Features in Expensify + ]} + /> + + ), + }, + workspaces: { + children: { + ":policyID": { + children: { + accounting: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Accounting Integrations + Link your workspace directly to your accounting system to make expense tracking smarter and smoother. We’ll automatically sync your chart of accounts so your team can code expenses accurately — and approved reports flow right back into your books. Less manual work, more peace of mind. + Once connected, you can fine-tune your setup with: + Import settings to control what data comes from your accounting system., + Export settings to choose how expense reports are sent back., + Advanced options for automation, such as auto-sync and employee settings. + ]} + /> + + Supported Integrations + QuickBooks Online + Real-time expense sync, + Category and vendor mapping, + Tax rate sync + ]} + /> + QuickBooks Desktop + File-based import/export, + Chart of accounts sync, + Custom field mapping + ]} + /> + Xero + Auto-sync approved reports, + Import tracking categories, + Manage tax rates seamlessly + ]} + /> + NetSuite + Built for complex orgs with multi-entity support, + Custom dimension mapping, + Automated bill payments + ]} + /> + Sage Intacct + Track departments, classes, and more, + Multi-currency support, + Advanced approval workflows + ]} + /> + + What Syncs Automatically + From your accounting system: + Chart of accounts (as categories), + Classes, departments, locations (as tags), + Tax rates and customers, + Vendors and bill payment accounts + ]} + /> + To your accounting system: + Approved expense reports, + Company card transactions, + Vendor bills and journal entries, + Payment records and reconciliation data + ]} + /> + + Learn More + Connect to QuickBooks Online, + Connect to Xero, + Connect to NetSuite + ]} + /> + + ), }, - content: ({styles}: {styles: ThemeStyles}) => ( + invoices: { + content: ({styles}: {styles: ThemeStyles}) => ( - Workspaces 101 - - Think of a workspace as mission control for your company’s expenses. It’s where you set the rules, invite the team, and connect to your accounting tools. Each - workspace runs independently, so you can keep things tidy across departments, entities, or clients. - - Create a new workspace - - Hit the New workspace button to get started. Add a name, set a default currency, and you’re ready to get started customizing the - workspace settings! - - Invite your team - Add teammates to your workspace to manage expenses and approvals in one central place: - Members can submit and approve reports they’re assigned to., - Admins can approve all reports and manage workspace settings., - ]} - /> - Automate approvals - - Toggle on Add Approvals under Workflows to set a default first approver. Create custom - approval flows for individual team members if needed. - - Connect your accounting system - Link your workspace with QuickBooks Online, Xero, NetSuite, or Sage Intacct to sync expenses like a pro. - Enhance your workspace with extra features - - Under More Features, enable extras like the Expensify Card, distance rates, custom categories and tags, and company card - connections. - - - - Tip: If you manage multiple departments, clients, or entities, consider creating multiple workspaces. Separate workspaces can - help keep settings, approvals, and payments organized and more automated. - + Create and Send Invoices + Send invoices, track their status, and get paid — even if your customer isn’t on Expensify. Invoicing comes included with all Expensify subscriptions. + + + Set Up Invoicing: Add a business bank account to start sending and receiving invoice payments. + , + + Invoice Balance: Right up top, you’ll see your current invoice balance — that’s the money you’ve collected from paid invoices. If you’ve added a bank account, this balance will transfer automatically. + , + + Customize Your Invoices: Make your invoices your own. Add your company name, website, and logo — they’ll show up on every invoice you send. + + ]} + /> - ), - }, - settings: { - children: { - preferences: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Preferences - - Your preferences shape how Expensify looks and feels just for you. Customize your language, theme, and notification settings to customize your experience - across all your devices. - - - - - Notifications: Decide which alerts you want to receive, such as feature updates, news, or sound - notifications. You’re in control. - - , - - - Priority mode: Choose how chats appear in your inbox – Focus on unread and pinned chats, or keep everything - visible, with the most recent messages shown at the top of the left-hand menu. - - , - - - Language options: You can update your interface in just a few clicks by choosing from 10 supported languages. - Choose your preferred language from the list, and your account will update automatically. - - , - - - Payment Currency: Set your default currency for expense tracking and reimbursements. - - , - <> - - Theme: Change the app’s appearance to suit your preference: - - - - Dark Mode - Easy on the eyes in low-light environments - , - - Light Mode - Bright, clean interface for well-lit spaces - , - - Use Device Settings - Automatically match your device’s theme - , - ]} - /> - , - ]} - /> - - - Note: Preference changes only affect your personal account view. Workspace members must update their own settings - individually. - - - ), - }, - security: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Security - - This is where you control who can access your account and how secure it is. From adding two-factor authentication to merging accounts, it’s all in one spot. - - - Two-Factor Authentication - - This adds an extra layer of protection to your Expensify account. Even if someone gets your login info, they won’t be able to access it without a code from - your authenticator app. - - - - Set it up in a minute: Use an app like Google Authenticator or Microsoft Authenticator to link your account. - - , - - - Don’t skip the backup codes: Download or save your recovery codes somewhere safe. You’ll need them if you - ever lose access to your app. - - , - - - How login works: You’ll log in with your email magic code and a 6-digit code from your authenticator app. - - , - ]} - /> - - Merge Accounts - - If you’ve ended up with two Expensify accounts, you can merge them to keep expense history and workspace access under a single login. - - - - Heads up: Merging is permanent and must be done from your company account by pulling in the personal one. - - , - - - How to merge: Under Account > Security > Merge accounts, add the - email address of the account you’re merging and then enter the magic code sent to your email. - - , - - - What moves over: Expenses, reports, cards, co-pilots — everything from the merged account rolls over into - your existing account. - - , - ]} - /> - - Report Suspicious Activity - - If something feels off or you’re concerned a bad actor has gained access to your account, report it by clicking{' '} - Report suspicious activity. This will fully lock down your account and halt Expensify Card transactions immediately. - - - Close Account - If you need to close your Expensify account, you can do that here — there are just a few things to check off first. - - - Before you close: Make sure to transfer ownerships, clear any balances, and update billing contacts. - - , - - - After closing the account: Shared reports and expenses will still be accessible to workspace admins, but all - your personal data will be wiped. - - , - ]} - /> - - Learn More - - - Two-Factor Authentication - - , - - - Report Suspicious Activity - - , - - - Merge Accounts - - , - - - Close Account - - , - ]} - /> - - ), - }, - subscription: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Subscription Plan - - Your subscription plan determines which features are available and how much you’re charged per active member. Choose the one that fits your team’s needs and - budget! - - - - - Expensify offers two plans – Collect and Control: The Collect plan is $5 per member each month. The Control - plan ranges from $9 to $36 per member/month, depending on your subscription commitment and how much your team uses the Expensify Card. - - , - - - Add a payment card: To pay for your subscription, add a payment card under{' '} - Account > Subscription. Charges will automatically be billed to this card each month. - - , - - - Change plan: You can switch plans by clicking Explore all plans. You can - upgrade your plan or increase your subscription size at any time. - - , - - - Request Tax-Exempt Status: Under{' '} - Account > Subscription > Subscription settings, click{' '} - Tax exempt status. This kicks off a chat with Concierge, where you can request that your account be - tax-exempt and then upload a PDF of your exemption document. Our team will review everything and reach out if we need anything else. - - , - ]} - /> - - Learn More - - - Billing Overview - - , - - - Change Workspace Plan - - , - - - Tax Exemption - - , - ]} - /> - - ), - }, - profile: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Profile - - Your profile is where you control how you show up in Expensify. Update your photo, name, status, and timezone so teammates know who they’re working with. - Private info like your legal name and address stays visible to you only. - - - - Setting your status: Add a custom status (yep, emojis included) to show if you’re in a meeting, out of - office, or just heads-down for a bit. - - , - - - Managing contact methods: Add backup emails or phone numbers to keep your account secure and accessible, even - if your primary email changes. - - , - ]} - /> - - ), - }, - wallet: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Wallet - - Your Wallet is the hub for all things money in Expensify. This is where you connect and manage your business and personal bank accounts, view company card - details, and control how money moves in and out of your organization. Whether you’re reimbursing employees, collecting payments, or issuing Expensify Cards, - it all starts here. - - - Business Bank Accounts - - Connect a verified business bank account to unlock smart features like reimbursements, bill pay, invoice collection, and the Expensify Card. - - - - Turn on payments: Head to{' '} - Workspaces > [Workspace Name] > More features, click{' '} - Enable workflows, then toggle on Make or track payments. From there, hit{' '} - Connect bank account to get started. - - , - - - Connect your account: Use Plaid to link your account in seconds, or enter your details manually. You’ll need - to upload an ID, add your company info, and verify the account with a few test transactions. - - , - <> - Once your account is verified, you can: - - Reimburse employees via ACH, - Pay vendors and suppliers, - Issue Expensify Cards to your team, - Collect invoice payments from clients, - ]} - /> - , - - Share access to the bank account with another admin: Under{' '} - Settings > Account > Wallet, click Share next to the bank account, and - enter the admin’s email. They’ll just need to revalidate the bank account on their end before they can issue payments. - , - ]} - /> - - Personal Bank Accounts - - If you want to get reimbursed or paid directly in Expensify, add a personal bank account — Expensify supports banks in over 190 countries. - - - - Add your bank account: Under Settings > Wallet > Bank accounts, - click Add bank account, choose your country, and connect via Plaid or enter your info manually. - - , - - - Note: Personal bank accounts are for receiving funds only. You’ll need a verified business bank account to - send payments or issue Expensify Cards. - - , - ]} - /> - - Assigned Cards - - Company cards are assigned at the workspace level, but are visible to the individual cardholder in their Wallet. The - cards sync automatically, so you can skip manually entering credit card expenses. - - - - See card details (Expensify Card): Click Reveal details to check your - card number, expiration date, and security code for online purchases. - - , - - - Track expenses smarter: Transactions pull in automatically and match with SmartScanned receipts to keep - records audit-ready. - - , - - - View transactions: Click on a connected card and then View transactions{' '} - to see all of the imported expenses from that company card. - - , - ]} - /> - - Learn More - - - Connect a Business Bank Account - - , - - - Connect a Personal Bank Account - - , - - - Expensify Cardholder Settings and Features - - , - ]} - /> - - ), - }, + ), }, - }, - new: { - children: { - task: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Tasks - - Keep conversations organized by letting you create actionable to-dos directly within a chat. You can assign them to yourself or others in both 1:1 and group - chats. - - - - Create a task: In any chat, click the + button next to the message field and select Assign a task. Add a - title (required) and an optional description, and choose an assignee from chat participants. You can also leave it unassigned to track it - yourself. - - , - - - Use tasks to stay on top of action items: Tasks are great for follow-ups like “Submit expense report,” “Share - slide deck,” or “Update mileage rate.” They’re perfect for 1:1 check-ins, project updates, or organizing next steps after a team discussion. - - , - - - Edit and manage tasks: Task creators and assignees can comment, edit the title or description, reassign the - task, or mark it as complete. Just click the task to update any details. - - , - - - Tasks stay visible: Each task is shared in the chat where it’s created. When completed, it will be clearly - marked in the chat and can be reopened if needed. - - , - ]} - /> - - ), - }, + "distance-rates": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Distance Rates + Distance rates make it easy to pay employees when they use their personal vehicles for work. You can set different rates for different vehicle types or travel situations. Just make sure at least one rate is active when this feature is turned on. + + + How to set up rates: Under Workspaces > [Workspace Name] > Distance rates and choose Add rate. Enter how much you’ll reimburse per mile or kilometer and click Save. + , + + Multiple rate options: Customize rates for personal cars, company vehicles, or different types of trips. + , + + Managing your rates: To save time, you can turn rates on or off, update amounts, or manage them in bulk. + + ]} + /> + + You can learn more about managing distance rates here ➡️ Set Distance Rates. + + ), }, - }, - search: { - content: ({styles}: {styles: ThemeStyles}) => ( + workflows: { + content: ({styles}: {styles: ThemeStyles}) => ( - Reports Page - - The Reports page helps you explore and filter all reports and related expenses. It complements the Inbox by giving you a complete view of your expense history and - what expenses and reports require your action. Use this page to create and download spending reports, track report actions, and view the recent expense activity on - your workspace(s). - - - Expenses & Reports - - - Managing expenses: Click on any expense row to see its details in a side panel. Use checkboxes to select multiple - expenses, then use bulk actions like Move, Download, or Delete from the action menu. - - , - - - Filters: Looking for something specific? Use filters to narrow things down by date, category, merchant, tag, - workspace, or report status. You can also combine filters with keywords for even more precise results. - - , - - - Sort reports by status: - Draft – Only you can see it - Outstanding – Waiting on someone else - Approved – Ready to - pay - Done or Paid – All wrapped up - - , - - - Download what you need: Generate a report to download filtered expense data as a CSV. Perfect for spreadsheets, - monthly close, or syncing with accounting. - - , - ]} - /> - - Chats - - - Viewing report previews: Each report preview shows up right in your workspace chat with the status, up to 10 - expenses, and buttons like Submit or Approve, depending on your role. - - , - - - Filter chats: Use filters to find the exact chat you’re looking for. - - , - ]} - /> - - To-Do + Workflows + Setting up workflows on your workspace automates how expenses move from submission to payment. They keep things organized and help you control when expenses are submitted, who approves them, and how they get paid. + Note: Only admins can configure workspace workflows. + + + Approval setup: Assign approvers to review expenses before they’re paid. You can even customize approvers for different team members. + , + + Submission timing: Pick a daily or weekly schedule for automatic expense submission so no one forgets to submit their expenses. + , + + Automated payments: Link your business bank account, and Expensify will automatically process payments for approved expenses and invoices. + + ]} + /> + + Learn More + Workspace Workflows, + Approval Settings + ]} + /> + + ), + }, + "expensify-card": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expensify Card + The Expensify Card is a smart company card with real-time controls and built-in cash back. It allows you to issue unlimited virtual cards, set custom limits for each employee, and manage everything in one place. + Note: You’ll need a connected US business bank account to get started. + + + Issue cards: Hand out virtual or physical cards with flexible spending controls, such as smart limits, monthly caps, or fixed amounts. + , + + Smarter spending controls: Set custom limits, block certain merchant types, and track every swipe in real time. + , + + Easy card management: As a workspace admin, you can see all issued cards at a glance. You can adjust limits, rename cards, or deactivate them whenever you need to. + + ]} + /> + + More details on setting up the Expensify Card for your business can be found here ➡️ The Expensify Card. + + ), + }, + tags: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Tag Settings + Tags help you track extra details on expenses—like projects, cost centers, locations, or clients—so you can organize your spend beyond just categories. You can add them manually or sync them automatically from your accounting software. + + + How to add tags: Click the green + button to add tags manually, or upload up to 50,000 at once with a spreadsheet. Using an accounting integration? Your tags will sync automatically. + , + + Organizing tags: Use dependent tags (where one relies on another) for more structured tracking, or keep things simple with independent tags. + , + + Automatic tagging that gets smarter: Expensify learns how you tag expenses and starts doing it for you, speeding up and simplifying your workflow over time. + + ]} + /> + + Learn More + Create Tags, + Require Tags for Expenses + ]} + /> + + ), + }, + "per-diem": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Per Diem Settings + Per diem makes it easy to cover travel or recurring allowances with fixed daily rates—no need to track every coffee or cab ride. Employees just pick a rate and submit. You can create rates manually or import them from a spreadsheet. + + + Set up rates: Create daily rates for different locations, meal types, or travel needs. Just enter the amount, and you’re done! + , + + Default categories: Assign a default category to keep all your per diem expenses organized and your accounting on track. + + ]} + /> + + Learn more about setting up per diem rates here ➡️ Per Diem Settings. + + ), + }, + taxes: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Tax Settings + Track VAT, GST, or any other regional taxes right in Expensify. Perfect for staying compliant—especially if you’re working in non-USD currencies. You can set up different tax rates for your workspace currency and for foreign currencies, too. + + + How to set up tax rates: Click the green + button to add a tax rate. Just enter the tax name, percentage, and tax code for your records. + , + + Default tax settings: Set separate default rates for your workspace currency and foreign currencies, so everything’s accurate no matter where you’re spending. + , + + Managing tax rates: You can turn rates on or off, update their values, or delete them entirely. Use bulk actions to move faster, or make changes one at a time. + + ]} + /> + + Learn more about workspace tax settings here ➡️ Track Taxes. + + ), + }, + rules: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace Rules + Rules help you stick to your expense policy without micromanaging. Set limits, require receipts, and automate approvals. Expensify checks every expense against your rules and flags anything that’s off. + Note: Workspace rules are only available on the Control plan. + + + Expense requirements: Decide when receipts are required, set a max spend per expense, and control how far back expenses can be submitted. + , + + Prohibited expenses: Let Expensify’s AI catch restricted items like alcohol, gambling, or tobacco—no manual review needed. + , + + Automatic approvals: Save time by auto-approving compliant reports under a certain amount. You can even randomly audit a few to keep everyone honest. + + ]} + /> + + Learn More + Workspace Rules, + Prohibited Expense Rules + ]} + /> + + ), + }, + members: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace Members + Invite teammates to your workspace and assign roles to control their access and keep the expense process running smoothly. + + Member Roles + Admin + Full workspace control and settings access, + Add/remove members and change roles, + Set up integrations and payment methods, + Approve and pay expenses + ]} + /> + Member + Submit expenses and create reports, + Participate in workspace chats, + View assigned expenses and reports + ]} + /> + Auditor + View all workspace reports (read-only), + Add comments, but cannot modify expenses, + No approval or payment permissions + ]} + /> + + Adding Members + Under Workspaces > [Workspace Name] > Members, click Invite Member, + Enter name, email, or phone number, + Choose a role (defaults to Member), + Click Invite + ]} + /> + Alternative: Share the workspace URL or QR code from Account > Profile > Share + + Managing Members + Change Role: + Click the member’s name, + Click Role and select new role, + Confirm changes + ]} + /> + Remove Member: + Click the member’s name, + Click Remove from Workspace, + Confirm removal + ]} + /> + + Transfer Ownership of a Workspace + Go to Members and click current Owner, + Click Transfer Owner, + Confirm transfer, + You become the new owner + ]} + /> + + Learn More + Managing Workspace Members, + Add Approvals + ]} + /> + + ), + }, + "company-cards": { + content: ({styles}: {styles: ThemeStyles}) => ( + + Company Cards + Already have business credit cards? You can connect them to Expensify to automatically pull in transactions. Most major banks and card providers are supported. + + + How to connect cards: Link your corporate card program to your workspace, assign the cards to the corresponding cardholder, and transactions will start syncing automatically as they post—no manual entry needed. + , + + Exporting expenses: Send card transactions to your accounting system, either to a shared account or separate ones for each cardholder. + , + + eReceipts: Turn on eReceipts to automatically generate digital receipts for USD transactions under $75—no more chasing paper ones. + + ]} + /> + + More details on connecting your company card program can be found here ➡️ Company Card Settings. + + ), + }, + reportFields: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Report Settings + Keep your reports clean, consistent, and easy to manage by customizing titles and adding report-level details. + + + Report title: Use the Custom Report Names feature (under workspace Rules) to create naming templates for new reports. It’s a smarter way to keep things organized and make reports easier to find. You also have the option to prevent members from changing the custom report names you set. + , + + Report fields: Collect high-level info—like project names, client codes, or trip types—that applies to the whole report, not just individual expenses. Report fields are filled out once and apply to all expenses in that report. + + ]} + /> + + Turn on and Manage Report Fields + Note: This setting requires the Control plan. + Under Workspaces > More Features, toggle on Report fields, + Head to Workspaces > [Workspace Name] > Reports to add, edit, or delete fields + ]} + /> + You can choose from field types like Text, Date, or a List with predefined options — whatever best fits your workflow. Learn more ➡️ Enable Report Fields. + + + ), + }, + overview: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace Overview + Set up the essentials — name, description, currency, address, and subscription plan — all in one spot. + + + Choose your workspace currency: Pick a default currency. No matter what currency members use, we’ll convert everything automatically. + , + + Add workspace details: Give your workspace a name, add a quick description, and drop in your company address. These show up on reports and invoices, so make it yours. + , + + Manage your subscription: Your plan controls what features you get and how much you pay per active user. Hit Explore all plans to switch things up or adjust your size. + + ]} + /> + + ), + }, + categories: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Category Settings + Categories help you organize expenses so your reports and accounting stay clean and easy to manage. Think of them as your chart of accounts or GL codes. You can add them manually or, if you use accounting software, import them straight from the integration. + + + Category settings made simple: You can toggle categories on or off, add GL codes, and set rules like receipt requirements or spending limits, all in one place under Workspaces > [Workspace Name] > Categories. + , + + Smarter categorization, automatically: Expensify learns how you tag your expenses and starts automatically applying those categories to similar merchants. This means less busywork and more accuracy. + + ]} + /> + + Learn More + Create Expense Categories, + Require Categories + ]} + /> + + + ), + }, + }, + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspaces 101 + Think of a workspace as mission control for your company’s expenses. It’s where you set the rules, invite the team, and connect to your accounting tools. Each workspace runs independently, so you can keep things tidy across departments, entities, or clients. + Create a new workspace + Hit the New workspace button to get started. Add a name, set a default currency, and you’re ready to get started customizing the workspace settings! + Invite your team + Add teammates to your workspace to manage expenses and approvals in one central place: + Members can submit and approve reports they’re assigned to., + Admins can approve all reports and manage workspace settings. + ]} + /> + Automate approvals + Toggle on Add Approvals under Workflows to set a default first approver. Create custom approval flows for individual team members if needed. + Connect your accounting system + Link your workspace with QuickBooks Online, Xero, NetSuite, or Sage Intacct to sync expenses like a pro. + Enhance your workspace with extra features + Under More Features, enable extras like the Expensify Card, distance rates, custom categories and tags, and company card connections. + + Tip: If you manage multiple departments, clients, or entities, consider creating multiple workspaces. Separate workspaces can help keep settings, approvals, and payments organized and more automated. + + ), + }, + settings: { + children: { + preferences: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Preferences + Your preferences shape how Expensify looks and feels just for you. Customize your language, theme, and notification settings to customize your experience across all your devices. + + + Notifications: Decide which alerts you want to receive, such as feature updates, news, or sound notifications. You’re in control. + , + + Priority mode: Choose how chats appear in your inbox – Focus on unread and pinned chats, or keep everything visible, with the most recent messages shown at the top of the left-hand menu. + , + + Language options: You can update your interface in just a few clicks by choosing from 10 supported languages. Choose your preferred language from the list, and your account will update automatically. + , + + Payment Currency: Set your default currency for expense tracking and reimbursements. + , + <> + + + Theme: Change the app’s appearance to suit your preference: + + - - Stay on top of tasks: The To-do section shows exactly what needs your attention. This is your go-to spot to keep - things moving. - - , - - - Action items: Whether you need to submit, approve, or pay expenses, you can click the corresponding action to - complete any outstanding to-dos. - - , - ]} + styles={styles} + items={[ + Dark Mode - Easy on the eyes in low-light environments, + Light Mode - Bright, clean interface for well-lit spaces, + Use Device Settings - Automatically match your device’s theme + ]} /> - - Learn More + + + + ]} + /> + + Note: Preference changes only affect your personal account view. Workspace members must update their own settings individually. + + ), + }, + security: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Security + This is where you control who can access your account and how secure it is. From adding two-factor authentication to merging accounts, it’s all in one spot. + + Two-Factor Authentication + This adds an extra layer of protection to your Expensify account. Even if someone gets your login info, they won’t be able to access it without a code from your authenticator app. + + Set it up in a minute: Use an app like Google Authenticator or Microsoft Authenticator to link your account. + , + + Don’t skip the backup codes: Download or save your recovery codes somewhere safe. You’ll need them if you ever lose access to your app. + , + + How login works: You’ll log in with your email magic code and a 6-digit code from your authenticator app. + + ]} + /> + + Merge Accounts + If you’ve ended up with two Expensify accounts, you can merge them to keep expense history and workspace access under a single login. + + Heads up: Merging is permanent and must be done from your company account by pulling in the personal one. + , + + How to merge: Under Account > Security > Merge accounts, add the email address of the account you’re merging and then enter the magic code sent to your email. + , + + What moves over: Expenses, reports, cards, co-pilots — everything from the merged account rolls over into your existing account. + + ]} + /> + + Report Suspicious Activity + If something feels off or you’re concerned a bad actor has gained access to your account, report it by clicking Report suspicious activity. This will fully lock down your account and halt Expensify Card transactions immediately. + + Close Account + If you need to close your Expensify account, you can do that here — there are just a few things to check off first. + + Before you close: Make sure to transfer ownerships, clear any balances, and update billing contacts. + , + + After closing the account: Shared reports and expenses will still be accessible to workspace admins, but all your personal data will be wiped. + + ]} + /> + + Learn More + Two-Factor Authentication, + Report Suspicious Activity, + Merge Accounts, + Close Account + ]} + /> + + ), + }, + subscription: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Subscription Plan + Your subscription plan determines which features are available and how much you’re charged per active member. Choose the one that fits your team’s needs and budget! + + + Expensify offers two plans – Collect and Control: The Collect plan is $5 per member each month. The Control plan ranges from $9 to $36 per member/month, depending on your subscription commitment and how much your team uses the Expensify Card. + , + + Add a payment card: To pay for your subscription, add a payment card under Account > Subscription. Charges will automatically be billed to this card each month. + , + + Change plan: You can switch plans by clicking Explore all plans. You can upgrade your plan or increase your subscription size at any time. + , + + Request Tax-Exempt Status: Under Account > Subscription > Subscription settings, click Tax exempt status. This kicks off a chat with Concierge, where you can request that your account be tax-exempt and then upload a PDF of your exemption document. Our team will review everything and reach out if we need anything else. + + ]} + /> + + Learn More + Billing Overview, + Change Workspace Plan, + Tax Exemption + ]} + /> + + ), + }, + profile: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Profile + Your profile is where you control how you show up in Expensify. Update your photo, name, status, and timezone so teammates know who they’re working with. Private info like your legal name and address stays visible to you only. + + Setting your status: Add a custom status (yep, emojis included) to show if you’re in a meeting, out of office, or just heads-down for a bit. + , + + Managing contact methods: Add backup emails or phone numbers to keep your account secure and accessible, even if your primary email changes. + + ]} + /> + + ), + }, + wallet: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Wallet + Your Wallet is the hub for all things money in Expensify. This is where you connect and manage your business and personal bank accounts, view company card details, and control how money moves in and out of your organization. Whether you’re reimbursing employees, collecting payments, or issuing Expensify Cards, it all starts here. + + Business Bank Accounts + Connect a verified business bank account to unlock smart features like reimbursements, bill pay, invoice collection, and the Expensify Card. + + Turn on payments: Head to Workspaces > [Workspace Name] > More features, click Enable workflows, then toggle on Make or track payments. From there, hit Connect bank account to get started. + , + + Connect your account: Use Plaid to link your account in seconds, or enter your details manually. You’ll need to upload an ID, add your company info, and verify the account with a few test transactions. + , + <> + Once your account is verified, you can: + + - - The Reports Page - - , - - - Understanding Reports Statuses and Actions - - , - - - Suggested Search - - , - - - Search and Download Expenses - - , - ]} + styles={styles} + items={[ + Reimburse employees via ACH, + Pay vendors and suppliers, + Issue Expensify Cards to your team, + Collect invoice payments from clients + ]} /> - - ), + + + , + Share access to the bank account with another admin: Under Settings > Account > Wallet, click Share next to the bank account, and enter the admin’s email. They’ll just need to revalidate the bank account on their end before they can issue payments. + ]} + /> + + Personal Bank Accounts + If you want to get reimbursed or paid directly in Expensify, add a personal bank account — Expensify supports banks in over 190 countries. + + Add your bank account: Under Settings > Wallet > Bank accounts, click Add bank account, choose your country, and connect via Plaid or enter your info manually. + , + + Note: Personal bank accounts are for receiving funds only. You’ll need a verified business bank account to send payments or issue Expensify Cards. + + ]} + /> + + Assigned Cards + Company cards are assigned at the workspace level, but are visible to the individual cardholder in their Wallet. The cards sync automatically, so you can skip manually entering credit card expenses. + + See card details (Expensify Card): Click Reveal details to check your card number, expiration date, and security code for online purchases. + , + + Track expenses smarter: Transactions pull in automatically and match with SmartScanned receipts to keep records audit-ready. + , + + View transactions: Click on a connected card and then View transactions to see all of the imported expenses from that company card. + + ]} + /> + + Learn More + Connect a Business Bank Account, + Connect a Personal Bank Account, + Expensify Cardholder Settings and Features + ]} + /> + + ), }, + }, }, - content: () => null, -}; + new: { + children: { + task: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Tasks + Keep conversations organized by letting you create actionable to-dos directly within a chat. You can assign them to yourself or others in both 1:1 and group chats. + + Create a task: In any chat, click the + button next to the message field and select Assign a task. Add a title (required) and an optional description, and choose an assignee from chat participants. You can also leave it unassigned to track it yourself. + , + + Use tasks to stay on top of action items: Tasks are great for follow-ups like “Submit expense report,” “Share slide deck,” or “Update mileage rate.” They’re perfect for 1:1 check-ins, project updates, or organizing next steps after a team discussion. + , + + Edit and manage tasks: Task creators and assignees can comment, edit the title or description, reassign the task, or mark it as complete. Just click the task to update any details. + , + + Tasks stay visible: Each task is shared in the chat where it’s created. When completed, it will be clearly marked in the chat and can be reopened if needed. + + ]} + /> + + ), + }, + }, + }, + search: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Reports Page + The Reports page helps you explore and filter all reports and related expenses. It complements the Inbox by giving you a complete view of your expense history and what expenses and reports require your action. Use this page to create and download spending reports, track report actions, and view the recent expense activity on your workspace(s). + + Expenses & Reports + + Managing expenses: Click on any expense row to see its details in a side panel. Use checkboxes to select multiple expenses, then use bulk actions like Move, Download, or Delete from the action menu. + , + + Filters: Looking for something specific? Use filters to narrow things down by date, category, merchant, tag, workspace, or report status. You can also combine filters with keywords for even more precise results. + , + + Sort reports by status: + - Draft – Only you can see it + - Outstanding – Waiting on someone else + - Approved – Ready to pay + - Done or Paid – All wrapped up + , + + Download what you need: Generate a report to download filtered expense data as a CSV. Perfect for spreadsheets, monthly close, or syncing with accounting. + + ]} + /> + + Chats + + Viewing report previews: Each report preview shows up right in your workspace chat with the status, up to 10 expenses, and buttons like Submit or Approve, depending on your role. + , + + Filter chats: Use filters to find the exact chat you’re looking for. + + ]} + /> + + To-Do + + Stay on top of tasks: The To-do section shows exactly what needs your attention. This is your go-to spot to keep things moving. + , + + Action items: Whether you need to submit, approve, or pay expenses, you can click the corresponding action to complete any outstanding to-dos. + + ]} + /> + + Learn More + The Reports Page, + Understanding Reports Statuses and Actions, + Suggested Search, + Search and Download Expenses + ]} + /> + + ), + }, + }, + content: () => null, +} export default helpContentMap; export type {ContentComponent}; From 0143aafd015bae74fb27cf25b20e60d34427ab5f Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Wed, 13 Aug 2025 19:21:23 +0200 Subject: [PATCH 6/9] Run prettier --- .../SidePanel/HelpContent/helpContentMap.tsx | 3278 ++++++++++------- 1 file changed, 2026 insertions(+), 1252 deletions(-) diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 188215ee8852..3202ac28f6ca 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -1,13 +1,14 @@ /* eslint-disable react/no-unescaped-entities */ + /* eslint-disable @typescript-eslint/naming-convention */ import type {ReactNode} from 'react'; import React from 'react'; import {View} from 'react-native'; -import type {ThemeStyles} from '@styles/index'; import BulletList from '@components/SidePanel/HelpComponents/HelpBulletList'; +import NumberedList from '@components/SidePanel/HelpComponents/HelpNumberedList'; import Text from '@components/Text'; import TextLink from '@components/TextLink'; -import NumberedList from '@components/SidePanel/HelpComponents/HelpNumberedList'; +import type {ThemeStyles} from '@styles/index'; type ContentComponent = (props: {styles: ThemeStyles}) => ReactNode; @@ -23,1278 +24,2051 @@ type HelpContent = { }; const helpContentMap: HelpContent = { - children: { - home: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Navigating Expensify - Get familiar with Expensify’s intuitive navigation system designed for easy access to all your tools. - Left-hand Navigation Bar - The vertical left-hand bar is your main navigation hub: - Expensify logo - Click to return to your Inbox (homepage), - Inbox - Your personalized dashboard with action items and reminders, - Reports - Access all your expense reports and filtering tools, - Workspaces - Manage company and personal workspace settings, - Account - Personal settings, profile, and preferences, - Global Create button - Quick access to create reports, expenses, invoices, and chats - ]} - /> - Inbox Overview - Your Inbox serves as the homepage and shows: - Smart reminders to submit, approve, or reconcile expenses, - Real-time updates on recent actions and flagged reports, - List of chats with other employees in your organization, - Personalized action items based on your role and activity - ]} - /> - Chat Features - Every expense, report, or workspace has an associated chat for collaboration: - Text messages with rich formatting support, - Images & Documents via copy/paste, drag/drop, or attach button, - Expenses to track and submit for reimbursement, - Tasks to assign and manage work items, - Mentions to invite anyone by email or phone number - ]} - /> - Reports Section - The Reports tab consolidates filtering and reporting: - Use the Workspace filter inside the Filters menu to refine results, - Apply filters and queries that update automatically, - View all expense reports across your workspaces - ]} - /> - Quick Actions - Use the green Create button to quickly: - Start a new chat or conversation, - Create an expense report, - Add an expense or receipt, - Create a task or invoice, - Submit expenses for approval - ]} - /> - - Tip: Navigation is consistent across web, mobile, and desktop versions of Expensify. - - ), - }, - distance: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Distance Expense - Easily track mileage costs using Expensify’s built-in map feature. Create and submit distance-based expenses right from the web, desktop, or mobile app. - - Create distance expenses: Click the green + button and choose Create expense, then select Distance. Enter your starting point and destination. You can also add stops if needed. - , - - Submit for approval: Choose your workspace and confirm the distance, amount, and date. Add optional notes or categories, then click Create expense to submit the mileage expense for approval. - , - - Log a round-trip: To log a round-trip, use the same location for both start and finish, and include any stops along the way. - - ]} - /> - - ), - }, - r: { - children: { - ":concierge": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Concierge - Concierge is available 24/7 to answer any question you have about anything — whether that’s how to get set up, how to fix a problem, or general best practices. - Concierge is a bot, but it’s really smart and can escalate you to a human whenever you want. Say hi — it’s friendly! - - ), - }, - ":expense": { - children: { - ":scan": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Scanned - A “scanned” expense was created by extracting the relevant details using the Concierge AI. - - ), - }, - ":manual": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Manual - A “manual” expense has had all its details specified by the workspace member. It was not imported from any system, or scanned from a receipt. - - ), - }, - ":pendingExpensifyCard": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Expensify Card (pending) - A “pending” Expensify Card expense represents a purchase that was recently made on the card, but has not yet “posted” – meaning, it has not been formally recognized as a final, complete transaction. - Any changes made to this expense will be preserved when the expense posts, typically 2-7 days later. - Pending transactions cannot be approved, as the final expense amount will not be confirmed until it posts. - - ), - }, - ":expensifyCard": { - content: ({styles}: {styles: ThemeStyles}) => ( + children: { + home: { + content: ({styles}: {styles: ThemeStyles}) => ( - Expensify Card - An “Expensify Card” expense corresponds to a “posted” (meaning, finalized by the bank) purchase. - Expensify Card expenses cannot be reimbursed as they are centrally paid by the bank account linked to the workspace. + Navigating Expensify + Get familiar with Expensify’s intuitive navigation system designed for easy access to all your tools. + Left-hand Navigation Bar + + The vertical left-hand bar is your main navigation hub: + + + Expensify logo - Click to return to your Inbox (homepage) + , + + Inbox - Your personalized dashboard with action items and reminders + , + + Reports - Access all your expense reports and filtering tools + , + + Workspaces - Manage company and personal workspace settings + , + + Account - Personal settings, profile, and preferences + , + + Global Create button - Quick access to create reports, expenses, invoices, and chats + , + ]} + /> + Inbox Overview + + Your Inbox serves as the homepage and shows: + + Smart reminders to submit, approve, or reconcile expenses, + Real-time updates on recent actions and flagged reports, + List of chats with other employees in your organization, + Personalized action items based on your role and activity, + ]} + /> + Chat Features + Every expense, report, or workspace has an associated chat for collaboration: + + Text messages with rich formatting support + , + + Images & Documents via copy/paste, drag/drop, or attach button + , + + Expenses to track and submit for reimbursement + , + + Tasks to assign and manage work items + , + + Mentions to invite anyone by email or phone number + , + ]} + /> + Reports Section + + The Reports tab consolidates filtering and reporting: + + + Use the Workspace filter inside the Filters menu to refine results + , + Apply filters and queries that update automatically, + View all expense reports across your workspaces, + ]} + /> + Quick Actions + + Use the green Create button to quickly: + + Start a new chat or conversation, + Create an expense report, + Add an expense or receipt, + Create a task or invoice, + Submit expenses for approval, + ]} + /> + + + Tip: Navigation is consistent across web, mobile, and desktop versions of Expensify. + - ), - }, - }, - content: ({styles}: {styles: ThemeStyles}) => ( - - Expense - Every expense gets a dedicated chat to discuss that specific expense. The expense consists of: - Receipt – Attach a photo or document to this expense., - Amount – The financial total of this transaction., - Description – A general explanation of what this expense was for., - Merchant – The business this purchase was made at., - Date – The day on which the purchase was made. - ]} - /> - The expense chat is shared with everyone in the approval flow, and will maintain an audit trail of all historical changes. - - ), - }, - ":chat": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Chat - Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated “chat”, which you can use to record additional details, or collaborate with others. Every chat has the following components: - Header - This shows who you are chatting with (or what you are chatting about). You can press the header for more details on the chat, or additional actions to take upon it. - Comments - The core of the chat are its comments, which come in many forms: - Text – Rich text messages stored securely and delivered via web, app, email, or SMS., - Images & Documents – Insert photos, screenshots, movies, PDFs, or more, using copy/paste, drag/drop, or the attach button., - Expenses – Share an expense in the chat, either to simply track and document it, or to submit for reimbursement., - Tasks – Record a task, and optionally assign it to someone (or yourself!). - ]} - /> - Actions - Hover (or long press) on a comment to see additional options, including: - React – Throw a ♥️😂🔥 like on anything!, - Reply in thread – Go deeper by creating a new chat on any comment., - Mark unread – Flag it for reading later, at your convenience. - ]} - /> - Composer - Use the composer at the bottom to write new messages: - Markdown – Format text using bold, italics, and more., - Mention – Invite or tag anyone in the world to any chat by putting an @ in front of their email address or phone number (e.g., @awong@marslink.web, or @415-867-5309). - ]} - /> - - ), + ), }, - ":policyAdmins": { - content: ({styles}: {styles: ThemeStyles}) => ( - - #admins - Every workspace automatically receives a special #admins chat room. Every admin is automatically added to this room as a member. The #admins room is used for several purposes: - - Talking with Concierge, your setup specialist, or your account manager – When you first create the workspace, Concierge and a setup specialist will be added. Feel free to ask any setup questions you have about how to configure the workspace, onboard your team, connect your accounting, or anything else you might need. - , - - Monitoring workspace changes – Every #admins room shows an audit trail of any configuration changes or significant events happening inside the workspace. - , - - Chatting with other admins – The #admins room is a useful space for workspace admins to chat with each other about anything, whether or not it relates to Expensify. - - ]} - /> - - ), - }, - ":expenseReport": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Expense Report - Every expense report gets a dedicated chat to discuss expenses, approvals, or anything you like. The expense report chat: - Is shared with everyone in the approval flow configured inside the workspace., - Will maintain an audit trail of all historical workflow actions (i.e., approvals). - ]} - /> - Press the attach button to add more expenses, or press the header for more options. Press on any expense to go deeper. - - ), - }, - ":policyExpenseChat": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workspace - Every workspace member gets a special chat between them and all workspace admins. This is a good place for workspace members to ask questions about expense policy, for workspace admins to explain changes, or for any “formal” conversation to occur between members and admins. Press the attach button to: - Create expense – This will submit an expense to the workspace for reimbursement., - Split expense – This will split an expense between the member and the workspace (e.g., for a business meal that brings a spouse). - ]} - /> - All past expense reports are processed here and stored for historical reference. - - ), - }, - ":policyAnnounce": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Announce Room (#announce) - The #announce room is a chat space available to all workspace members. It’s perfect for sharing company-wide updates, policy changes, or event reminders. The #announce room is accessible from your Inbox in the left-hand menu. - - Post company-wide announcements: All members can post in #announce by default, making it easy to communicate across the workspace. - , - - Restrict posting to admins: Workspace admins can limit posting to admins only. Open the #announce room, click the room header, select Settings, and change Who can post to Admins only. - , - - Everyone can read messages: Even if posting is limited to admins, all workspace members can still view messages in the #announce room. - - ]} - /> - - ), - }, - }, - content: ({styles}: {styles: ThemeStyles}) => ( - - Inbox - The Inbox is a prioritized “to do” list, highlighting exactly what you need to do next. It consists of: - Priorities - At the top of the Inbox are the most important tasks you should do first, which include: - Expense reports waiting on you, - Tasks assigned to you, - Chats that have mentioned you, - Anything you have pinned - ]} - /> - Chats - Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: - Most Recent – Lists every chat, ordered by whichever was most recently active., - Focus – Only lists chats with unread messages, sorted alphabetically. - ]} - /> - - ), - }, - scan: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Scan Receipt - SmartScan automatically extracts expense details from receipt images. - How to Scan - Click the + button and select Create expense, - Choose Scan, - Upload an image or take a photo of your receipt, - SmartScan extracts merchant, date, amount, and currency, - Choose your workspace and add any required details, - Click Create expense - ]} - /> - What SmartScan Detects - Amount and currency, - Merchant name and location, - Date of purchase, - Tax information (when visible), - Category suggestions based on merchant type - ]} - /> - Supported Receipt Types - Photos - Take with your device camera, - Email receipts - Forward to receipts@expensify.com, - PDF receipts - Upload from your device, - Screenshots - From apps or websites - ]} - /> - Tips for Best Results - Ensure receipt text is clear and readable, - Include the full receipt in the image, - Good lighting improves accuracy, - Straight angles work better than tilted photos - ]} - /> - After Scanning - Review extracted details for accuracy, - Add description, category, or tags as needed, - SmartScan learns from your corrections - ]} - /> - Related Links - Create an Expense, - Free Features in Expensify - ]} - /> - - ), - }, - workspaces: { - children: { - ":policyID": { - children: { - accounting: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Accounting Integrations - Link your workspace directly to your accounting system to make expense tracking smarter and smoother. We’ll automatically sync your chart of accounts so your team can code expenses accurately — and approved reports flow right back into your books. Less manual work, more peace of mind. - Once connected, you can fine-tune your setup with: - Import settings to control what data comes from your accounting system., - Export settings to choose how expense reports are sent back., - Advanced options for automation, such as auto-sync and employee settings. - ]} - /> - - Supported Integrations - QuickBooks Online - Real-time expense sync, - Category and vendor mapping, - Tax rate sync - ]} - /> - QuickBooks Desktop - File-based import/export, - Chart of accounts sync, - Custom field mapping - ]} - /> - Xero - Auto-sync approved reports, - Import tracking categories, - Manage tax rates seamlessly - ]} - /> - NetSuite - Built for complex orgs with multi-entity support, - Custom dimension mapping, - Automated bill payments - ]} - /> - Sage Intacct - Track departments, classes, and more, - Multi-currency support, - Advanced approval workflows - ]} - /> - - What Syncs Automatically - From your accounting system: - Chart of accounts (as categories), - Classes, departments, locations (as tags), - Tax rates and customers, - Vendors and bill payment accounts - ]} - /> - To your accounting system: - Approved expense reports, - Company card transactions, - Vendor bills and journal entries, - Payment records and reconciliation data - ]} - /> - - Learn More - Connect to QuickBooks Online, - Connect to Xero, - Connect to NetSuite - ]} - /> - - ), - }, - invoices: { - content: ({styles}: {styles: ThemeStyles}) => ( + distance: { + content: ({styles}: {styles: ThemeStyles}) => ( - Create and Send Invoices - Send invoices, track their status, and get paid — even if your customer isn’t on Expensify. Invoicing comes included with all Expensify subscriptions. - - - Set Up Invoicing: Add a business bank account to start sending and receiving invoice payments. - , - - Invoice Balance: Right up top, you’ll see your current invoice balance — that’s the money you’ve collected from paid invoices. If you’ve added a bank account, this balance will transfer automatically. - , - - Customize Your Invoices: Make your invoices your own. Add your company name, website, and logo — they’ll show up on every invoice you send. - - ]} - /> - - ), - }, - "distance-rates": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Distance Rates - Distance rates make it easy to pay employees when they use their personal vehicles for work. You can set different rates for different vehicle types or travel situations. Just make sure at least one rate is active when this feature is turned on. - - - How to set up rates: Under Workspaces > [Workspace Name] > Distance rates and choose Add rate. Enter how much you’ll reimburse per mile or kilometer and click Save. - , - - Multiple rate options: Customize rates for personal cars, company vehicles, or different types of trips. - , - - Managing your rates: To save time, you can turn rates on or off, update amounts, or manage them in bulk. - - ]} - /> - - You can learn more about managing distance rates here ➡️ Set Distance Rates. - - ), - }, - workflows: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workflows - Setting up workflows on your workspace automates how expenses move from submission to payment. They keep things organized and help you control when expenses are submitted, who approves them, and how they get paid. - Note: Only admins can configure workspace workflows. - - - Approval setup: Assign approvers to review expenses before they’re paid. You can even customize approvers for different team members. - , - - Submission timing: Pick a daily or weekly schedule for automatic expense submission so no one forgets to submit their expenses. - , - - Automated payments: Link your business bank account, and Expensify will automatically process payments for approved expenses and invoices. - - ]} - /> - - Learn More - Workspace Workflows, - Approval Settings - ]} - /> - - ), - }, - "expensify-card": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Expensify Card - The Expensify Card is a smart company card with real-time controls and built-in cash back. It allows you to issue unlimited virtual cards, set custom limits for each employee, and manage everything in one place. - Note: You’ll need a connected US business bank account to get started. - - - Issue cards: Hand out virtual or physical cards with flexible spending controls, such as smart limits, monthly caps, or fixed amounts. - , - - Smarter spending controls: Set custom limits, block certain merchant types, and track every swipe in real time. - , - - Easy card management: As a workspace admin, you can see all issued cards at a glance. You can adjust limits, rename cards, or deactivate them whenever you need to. - - ]} - /> - - More details on setting up the Expensify Card for your business can be found here ➡️ The Expensify Card. - - ), - }, - tags: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Tag Settings - Tags help you track extra details on expenses—like projects, cost centers, locations, or clients—so you can organize your spend beyond just categories. You can add them manually or sync them automatically from your accounting software. - - - How to add tags: Click the green + button to add tags manually, or upload up to 50,000 at once with a spreadsheet. Using an accounting integration? Your tags will sync automatically. - , - - Organizing tags: Use dependent tags (where one relies on another) for more structured tracking, or keep things simple with independent tags. - , - - Automatic tagging that gets smarter: Expensify learns how you tag expenses and starts doing it for you, speeding up and simplifying your workflow over time. - - ]} - /> - - Learn More - Create Tags, - Require Tags for Expenses - ]} - /> - - ), - }, - "per-diem": { - content: ({styles}: {styles: ThemeStyles}) => ( - - Per Diem Settings - Per diem makes it easy to cover travel or recurring allowances with fixed daily rates—no need to track every coffee or cab ride. Employees just pick a rate and submit. You can create rates manually or import them from a spreadsheet. - - - Set up rates: Create daily rates for different locations, meal types, or travel needs. Just enter the amount, and you’re done! - , - - Default categories: Assign a default category to keep all your per diem expenses organized and your accounting on track. - - ]} - /> - - Learn more about setting up per diem rates here ➡️ Per Diem Settings. - - ), - }, - taxes: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Tax Settings - Track VAT, GST, or any other regional taxes right in Expensify. Perfect for staying compliant—especially if you’re working in non-USD currencies. You can set up different tax rates for your workspace currency and for foreign currencies, too. - - - How to set up tax rates: Click the green + button to add a tax rate. Just enter the tax name, percentage, and tax code for your records. - , - - Default tax settings: Set separate default rates for your workspace currency and foreign currencies, so everything’s accurate no matter where you’re spending. - , - - Managing tax rates: You can turn rates on or off, update their values, or delete them entirely. Use bulk actions to move faster, or make changes one at a time. - - ]} - /> - - Learn more about workspace tax settings here ➡️ Track Taxes. - - ), - }, - rules: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workspace Rules - Rules help you stick to your expense policy without micromanaging. Set limits, require receipts, and automate approvals. Expensify checks every expense against your rules and flags anything that’s off. - Note: Workspace rules are only available on the Control plan. - - - Expense requirements: Decide when receipts are required, set a max spend per expense, and control how far back expenses can be submitted. - , - - Prohibited expenses: Let Expensify’s AI catch restricted items like alcohol, gambling, or tobacco—no manual review needed. - , - - Automatic approvals: Save time by auto-approving compliant reports under a certain amount. You can even randomly audit a few to keep everyone honest. - - ]} - /> - - Learn More - Workspace Rules, - Prohibited Expense Rules - ]} - /> - - ), - }, - members: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Workspace Members - Invite teammates to your workspace and assign roles to control their access and keep the expense process running smoothly. - - Member Roles - Admin - Full workspace control and settings access, - Add/remove members and change roles, - Set up integrations and payment methods, - Approve and pay expenses - ]} - /> - Member - Submit expenses and create reports, - Participate in workspace chats, - View assigned expenses and reports - ]} - /> - Auditor - View all workspace reports (read-only), - Add comments, but cannot modify expenses, - No approval or payment permissions - ]} - /> - - Adding Members - Under Workspaces > [Workspace Name] > Members, click Invite Member, - Enter name, email, or phone number, - Choose a role (defaults to Member), - Click Invite - ]} - /> - Alternative: Share the workspace URL or QR code from Account > Profile > Share - - Managing Members - Change Role: - Click the member’s name, - Click Role and select new role, - Confirm changes - ]} - /> - Remove Member: - Click the member’s name, - Click Remove from Workspace, - Confirm removal - ]} - /> - - Transfer Ownership of a Workspace - Go to Members and click current Owner, - Click Transfer Owner, - Confirm transfer, - You become the new owner - ]} - /> - - Learn More - Managing Workspace Members, - Add Approvals - ]} - /> + Distance Expense + + Easily track mileage costs using Expensify’s built-in map feature. Create and submit distance-based expenses right from the web, desktop, or mobile app. + + + + Create distance expenses: Click the green + button and choose Create expense, then select Distance. Enter your + starting point and destination. You can also add stops if needed. + + , + + + Submit for approval: Choose your workspace and confirm the distance, amount, and date. Add optional notes or + categories, then click Create expense to submit the mileage expense for approval. + + , + + + Log a round-trip: To log a round-trip, use the same location for both start and finish, and include any stops along + the way. + + , + ]} + /> - ), + ), + }, + r: { + children: { + ':concierge': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Concierge + + Concierge is available 24/7 to answer any question you have about anything — whether that’s how to get set up, how to fix a problem, or general best + practices. Concierge is a bot, but it’s really smart and can escalate you to a human whenever you want. Say hi — it’s friendly! + + + ), + }, + ':expense': { + children: { + ':scan': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Scanned + A “scanned” expense was created by extracting the relevant details using the Concierge AI. + + ), + }, + ':manual': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Manual + + A “manual” expense has had all its details specified by the workspace member. It was not imported from any system, or scanned from a receipt. + + + ), + }, + ':pendingExpensifyCard': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expensify Card (pending) + + A “pending” Expensify Card expense represents a purchase that was recently made on the card, but has not yet “posted” – meaning, it has not been + formally recognized as a final, complete transaction. + + Any changes made to this expense will be preserved when the expense posts, typically 2-7 days later. + Pending transactions cannot be approved, as the final expense amount will not be confirmed until it posts. + + ), + }, + ':expensifyCard': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expensify Card + An “Expensify Card” expense corresponds to a “posted” (meaning, finalized by the bank) purchase. + + Expensify Card expenses cannot be reimbursed as they are centrally paid by the bank account linked to the workspace. + + + ), + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Expense + Every expense gets a dedicated chat to discuss that specific expense. The expense consists of: + + Receipt – Attach a photo or document to this expense. + , + + Amount – The financial total of this transaction. + , + + Description – A general explanation of what this expense was for. + , + + Merchant – The business this purchase was made at. + , + + Date – The day on which the purchase was made. + , + ]} + /> + + The expense chat is shared with everyone in the approval flow, and will maintain an audit trail of all historical changes. + + + ), + }, + ':chat': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Chat + + Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated “chat”, which you can use to record additional + details, or collaborate with others. Every chat has the following components: + + Header + + This shows who you are chatting with (or what you are chatting about). You can press the header for more details on the chat, or additional actions to take + upon it. + + Comments + The core of the chat are its comments, which come in many forms: + + Text – Rich text messages stored securely and delivered via web, app, email, or SMS. + , + + Images & Documents – Insert photos, screenshots, movies, PDFs, or more, using copy/paste, drag/drop, or the + attach button. + , + + Expenses – Share an expense in the chat, either to simply track and document it, or to submit for reimbursement. + , + + Tasks – Record a task, and optionally assign it to someone (or yourself!). + , + ]} + /> + Actions + Hover (or long press) on a comment to see additional options, including: + + React – Throw a ♥️😂🔥 like on anything! + , + + Reply in thread – Go deeper by creating a new chat on any comment. + , + + Mark unread – Flag it for reading later, at your convenience. + , + ]} + /> + Composer + Use the composer at the bottom to write new messages: + + Markdown – Format text using bold,{' '} + italics, and{' '} + + more + + . + , + + Mention – Invite or tag anyone in the world to any chat by putting an @ in front of their email address or phone + number (e.g., @awong@marslink.web, or @415-867-5309). + , + ]} + /> + + ), + }, + ':policyAdmins': { + content: ({styles}: {styles: ThemeStyles}) => ( + + #admins + + Every workspace automatically receives a special #admins chat room. Every admin is automatically added to this room as a member. The #admins room is used for + several purposes: + + + + Talking with Concierge, your setup specialist, or your account manager – When you first create the workspace, + Concierge and a setup specialist will be added. Feel free to ask any setup questions you have about how to configure the workspace, onboard your + team, connect your accounting, or anything else you might need. + + , + + + Monitoring workspace changes – Every #admins room shows an audit trail of any configuration changes or + significant events happening inside the workspace. + + , + + + Chatting with other admins – The #admins room is a useful space for workspace admins to chat with each other + about anything, whether or not it relates to Expensify. + + , + ]} + /> + + ), + }, + ':expenseReport': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expense Report + Every expense report gets a dedicated chat to discuss expenses, approvals, or anything you like. The expense report chat: + Is shared with everyone in the approval flow configured inside the workspace., + Will maintain an audit trail of all historical workflow actions (i.e., approvals)., + ]} + /> + + Press the attach button to add more expenses, or press the header for more options. Press on any expense to go deeper. + + + ), + }, + ':policyExpenseChat': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace + + Every workspace member gets a special chat between them and all workspace admins. This is a good place for workspace members to ask questions about expense + policy, for workspace admins to explain changes, or for any “formal” conversation to occur between members and admins. Press the attach button to: + + + Create expense – This will submit an expense to the workspace for reimbursement. + , + + Split expense – This will split an expense between the member and the workspace (e.g., for a business meal that + brings a spouse). + , + ]} + /> + All past expense reports are processed here and stored for historical reference. + + ), + }, + ':policyAnnounce': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Announce Room (#announce) + + The #announce room is a chat space available to all workspace members. It’s perfect for sharing company-wide updates, policy changes, or event reminders. The + #announce room is accessible from your Inbox in the left-hand menu. + + + + Post company-wide announcements: All members can post in #announce by default, making it easy to communicate + across the workspace. + + , + + + Restrict posting to admins: Workspace admins can limit posting to admins only. Open the #announce room, click + the room header, select Settings, and change Who can post to Admins only. + + , + + + Everyone can read messages: Even if posting is limited to admins, all workspace members can still view + messages in the #announce room. + + , + ]} + /> + + ), + }, }, - "company-cards": { - content: ({styles}: {styles: ThemeStyles}) => ( + content: ({styles}: {styles: ThemeStyles}) => ( - Company Cards - Already have business credit cards? You can connect them to Expensify to automatically pull in transactions. Most major banks and card providers are supported. - - - How to connect cards: Link your corporate card program to your workspace, assign the cards to the corresponding cardholder, and transactions will start syncing automatically as they post—no manual entry needed. - , - - Exporting expenses: Send card transactions to your accounting system, either to a shared account or separate ones for each cardholder. - , - - eReceipts: Turn on eReceipts to automatically generate digital receipts for USD transactions under $75—no more chasing paper ones. - - ]} - /> - - More details on connecting your company card program can be found here ➡️ Company Card Settings. + Inbox + The Inbox is a prioritized “to do” list, highlighting exactly what you need to do next. It consists of: + Priorities + At the top of the Inbox are the most important tasks you should do first, which include: + Expense reports waiting on you, + Tasks assigned to you, + Chats that have mentioned you, + Anything you have pinned, + ]} + /> + Chats + Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: + + Most Recent – Lists every chat, ordered by whichever was most recently active. + , + + Focus – Only lists chats with unread messages, sorted alphabetically. + , + ]} + /> - ), - }, - reportFields: { - content: ({styles}: {styles: ThemeStyles}) => ( + ), + }, + scan: { + content: ({styles}: {styles: ThemeStyles}) => ( - Report Settings - Keep your reports clean, consistent, and easy to manage by customizing titles and adding report-level details. - - - Report title: Use the Custom Report Names feature (under workspace Rules) to create naming templates for new reports. It’s a smarter way to keep things organized and make reports easier to find. You also have the option to prevent members from changing the custom report names you set. - , - - Report fields: Collect high-level info—like project names, client codes, or trip types—that applies to the whole report, not just individual expenses. Report fields are filled out once and apply to all expenses in that report. - - ]} - /> - - Turn on and Manage Report Fields - Note: This setting requires the Control plan. - Under Workspaces > More Features, toggle on Report fields, - Head to Workspaces > [Workspace Name] > Reports to add, edit, or delete fields - ]} - /> - You can choose from field types like Text, Date, or a List with predefined options — whatever best fits your workflow. Learn more ➡️ Enable Report Fields. - + Scan Receipt + SmartScan automatically extracts expense details from receipt images. + How to Scan + + Click the + button and select Create expense + , + + Choose Scan + , + Upload an image or take a photo of your receipt, + SmartScan extracts merchant, date, amount, and currency, + Choose your workspace and add any required details, + + Click Create expense + , + ]} + /> + What SmartScan Detects + + Amount and currency + , + + Merchant name and location + , + + Date of purchase + , + + Tax information (when visible) + , + + Category suggestions based on merchant type + , + ]} + /> + Supported Receipt Types + + Photos - Take with your device camera + , + + Email receipts - Forward to receipts@expensify.com + , + + PDF receipts - Upload from your device + , + + Screenshots - From apps or websites + , + ]} + /> + Tips for Best Results + Ensure receipt text is clear and readable, + Include the full receipt in the image, + Good lighting improves accuracy, + Straight angles work better than tilted photos, + ]} + /> + After Scanning + Review extracted details for accuracy, + Add description, category, or tags as needed, + SmartScan learns from your corrections, + ]} + /> + Related Links + + + Create an Expense + + , + + + Free Features in Expensify + + , + ]} + /> - ), + ), + }, + workspaces: { + children: { + ':policyID': { + children: { + accounting: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Accounting Integrations + + Link your workspace directly to your accounting system to make expense tracking smarter and smoother. We’ll automatically sync your chart of accounts + so your team can code expenses accurately — and approved reports flow right back into your books. Less manual work, more peace of mind. + + + Once connected, you can fine-tune your setup with: + + Import settings to control what data comes from your accounting system., + Export settings to choose how expense reports are sent back., + Advanced options for automation, such as auto-sync and employee settings., + ]} + /> + + Supported Integrations + + QuickBooks Online + + Real-time expense sync, + Category and vendor mapping, + Tax rate sync, + ]} + /> + + QuickBooks Desktop + + File-based import/export, + Chart of accounts sync, + Custom field mapping, + ]} + /> + + Xero + + Auto-sync approved reports, + Import tracking categories, + Manage tax rates seamlessly, + ]} + /> + + NetSuite + + Built for complex orgs with multi-entity support, + Custom dimension mapping, + Automated bill payments, + ]} + /> + + Sage Intacct + + Track departments, classes, and more, + Multi-currency support, + Advanced approval workflows, + ]} + /> + + What Syncs Automatically + + From your accounting system: + + Chart of accounts (as categories), + Classes, departments, locations (as tags), + Tax rates and customers, + Vendors and bill payment accounts, + ]} + /> + + To your accounting system: + + Approved expense reports, + Company card transactions, + Vendor bills and journal entries, + Payment records and reconciliation data, + ]} + /> + + Learn More + + + Connect to QuickBooks Online + + , + + + Connect to Xero + + , + + + Connect to NetSuite + + , + ]} + /> + + ), + }, + invoices: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Create and Send Invoices + + Send invoices, track their status, and get paid — even if your customer isn’t on Expensify. Invoicing comes included with all Expensify subscriptions. + + + + + Set Up Invoicing: Add a business bank account to start sending and receiving invoice payments. + + , + + + Invoice Balance: Right up top, you’ll see your current invoice balance — that’s the money you’ve + collected from paid invoices. If you’ve added a bank account, this balance will transfer automatically. + + , + + + Customize Your Invoices: Make your invoices your own. Add your company name, website, and logo — + they’ll show up on every invoice you send. + + , + ]} + /> + + ), + }, + 'distance-rates': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Distance Rates + + Distance rates make it easy to pay employees when they use their personal vehicles for work. You can set different rates for different vehicle types + or travel situations. Just make sure at least one rate is active when this feature is turned on. + + + + + How to set up rates: Under{' '} + Workspaces > [Workspace Name] > Distance rates and choose{' '} + Add rate. Enter how much you’ll reimburse per mile or kilometer and click{' '} + Save. + + , + + + Multiple rate options: Customize rates for personal cars, company vehicles, or different types of + trips. + + , + + + Managing your rates: To save time, you can turn rates on or off, update amounts, or manage them in + bulk. + + , + ]} + /> + + + You can learn more about managing distance rates here ➡️{' '} + + Set Distance Rates + + . + + + ), + }, + workflows: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workflows + + Setting up workflows on your workspace automates how expenses move from submission to payment. They keep things organized and help you control when + expenses are submitted, who approves them, and how they get paid. + + + Note: Only admins can configure workspace workflows. + + + + + Approval setup: Assign approvers to review expenses before they’re paid. You can even customize + approvers for different team members. + + , + + + Submission timing: Pick a daily or weekly schedule for automatic expense submission so no one forgets + to submit their expenses. + + , + + + Automated payments: Link your business bank account, and Expensify will automatically process + payments for approved expenses and invoices. + + , + ]} + /> + + Learn More + + + Workspace Workflows + + , + + + Approval Settings + + , + ]} + /> + + ), + }, + 'expensify-card': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expensify Card + + The Expensify Card is a smart company card with real-time controls and built-in cash back. It allows you to issue unlimited virtual cards, set custom + limits for each employee, and manage everything in one place. + + + Note: You’ll need a connected US business bank account to get started. + + + + + Issue cards: Hand out virtual or physical cards with flexible spending controls, such as smart + limits, monthly caps, or fixed amounts. + + , + + + Smarter spending controls: Set custom limits, block certain merchant types, and track every swipe in + real time. + + , + + + Easy card management: As a workspace admin, you can see all issued cards at a glance. You can adjust + limits, rename cards, or deactivate them whenever you need to. + + , + ]} + /> + + + More details on setting up the Expensify Card for your business can be found here ➡️{' '} + + The Expensify Card + + . + + + ), + }, + tags: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Tag Settings + + Tags help you track extra details on expenses—like projects, cost centers, locations, or clients—so you can organize your spend beyond just + categories. You can add them manually or sync them automatically from your accounting software. + + + + + How to add tags: Click the green + button to add tags manually, or upload up to 50,000 at once with a + spreadsheet. Using an accounting integration? Your tags will sync automatically. + + , + + + Organizing tags: Use dependent tags (where one relies on another) for more structured tracking, or + keep things simple with independent tags. + + , + + + Automatic tagging that gets smarter: Expensify learns how you tag expenses and starts doing it for + you, speeding up and simplifying your workflow over time. + + , + ]} + /> + + Learn More + + + Create Tags + + , + + + Require Tags for Expenses + + , + ]} + /> + + ), + }, + 'per-diem': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Per Diem Settings + + Per diem makes it easy to cover travel or recurring allowances with fixed daily rates—no need to track every coffee or cab ride. Employees just pick a + rate and submit. You can create rates manually or import them from a spreadsheet. + + + + + Set up rates: Create daily rates for different locations, meal types, or travel needs. Just enter the + amount, and you’re done! + + , + + + Default categories: Assign a default category to keep all your per diem expenses organized and your + accounting on track. + + , + ]} + /> + + + Learn more about setting up per diem rates here ➡️{' '} + + Per Diem Settings + + . + + + ), + }, + taxes: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Tax Settings + + Track VAT, GST, or any other regional taxes right in Expensify. Perfect for staying compliant—especially if you’re working in non-USD currencies. You + can set up different tax rates for your workspace currency and for foreign currencies, too. + + + + + How to set up tax rates: Click the green + button to add a tax rate. Just enter the tax name, + percentage, and tax code for your records. + + , + + + Default tax settings: Set separate default rates for your workspace currency and foreign currencies, + so everything’s accurate no matter where you’re spending. + + , + + + Managing tax rates: You can turn rates on or off, update their values, or delete them entirely. Use + bulk actions to move faster, or make changes one at a time. + + , + ]} + /> + + + Learn more about workspace tax settings here ➡️{' '} + + Track Taxes + + . + + + ), + }, + rules: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace Rules + + Rules help you stick to your expense policy without micromanaging. Set limits, require receipts, and automate approvals. Expensify checks every + expense against your rules and flags anything that’s off. + + + Note: Workspace rules are only available on the Control plan. + + + + + Expense requirements: Decide when receipts are required, set a max spend per expense, and control how + far back expenses can be submitted. + + , + + + Prohibited expenses: Let Expensify’s AI catch restricted items like alcohol, gambling, or tobacco—no + manual review needed. + + , + + + Automatic approvals: Save time by auto-approving compliant reports under a certain amount. You can + even randomly audit a few to keep everyone honest. + + , + ]} + /> + + Learn More + + + Workspace Rules + + , + + + Prohibited Expense Rules + + , + ]} + /> + + ), + }, + members: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace Members + + Invite teammates to your workspace and assign roles to control their access and keep the expense process running smoothly. + + + Member Roles + + Admin + + Full workspace control and settings access, + Add/remove members and change roles, + Set up integrations and payment methods, + Approve and pay expenses, + ]} + /> + + Member + + Submit expenses and create reports, + Participate in workspace chats, + View assigned expenses and reports, + ]} + /> + + Auditor + + View all workspace reports (read-only), + Add comments, but cannot modify expenses, + No approval or payment permissions, + ]} + /> + + Adding Members + + Under Workspaces > [Workspace Name] > Members, click{' '} + Invite Member + , + Enter name, email, or phone number, + Choose a role (defaults to Member), + + Click Invite + , + ]} + /> + + Alternative: Share the workspace URL or QR code from{' '} + Account > Profile > Share + + + Managing Members + + Change Role: + + Click the member’s name, + + Click Role and select new role + , + Confirm changes, + ]} + /> + + Remove Member: + + Click the member’s name, + + Click Remove from Workspace + , + Confirm removal, + ]} + /> + + Transfer Ownership of a Workspace + + Go to Members and click current Owner + , + + Click Transfer Owner + , + Confirm transfer, + You become the new owner, + ]} + /> + + Learn More + + + Managing Workspace Members + + , + + + Add Approvals + + , + ]} + /> + + ), + }, + 'company-cards': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Company Cards + + Already have business credit cards? You can connect them to Expensify to automatically pull in transactions. Most major banks and card providers are + supported. + + + + + How to connect cards: Link your corporate card program to your workspace, assign the cards to the + corresponding cardholder, and transactions will start syncing automatically as they post—no manual entry needed. + + , + + + Exporting expenses: Send card transactions to your accounting system, either to a shared account or + separate ones for each cardholder. + + , + + + eReceipts: Turn on eReceipts to automatically generate digital receipts for USD transactions under + $75—no more chasing paper ones. + + , + ]} + /> + + + More details on connecting your company card program can be found here ➡️{' '} + + Company Card Settings + + . + + + ), + }, + reportFields: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Report Settings + Keep your reports clean, consistent, and easy to manage by customizing titles and adding report-level details. + + + + Report title: Use the Custom Report Names feature (under workspace Rules) to create naming templates + for new reports. It’s a smarter way to keep things organized and make reports easier to find. You also have the option to prevent members + from changing the custom report names you set. + + , + + + Report fields: Collect high-level info—like project names, client codes, or trip types—that applies + to the whole report, not just individual expenses. Report fields are filled out once and apply to all expenses in that report. + + , + ]} + /> + + Turn on and Manage Report Fields + + Note: This setting requires the Control plan. + + + Under Workspaces > More Features, toggle on Report fields + , + + Head to Workspaces > [Workspace Name] > Reports to add, edit, or delete fields + , + ]} + /> + + You can choose from field types like Text, Date, or a List with predefined options — whatever best fits your workflow. Learn more ➡️{' '} + + Enable Report Fields + + . + + + ), + }, + overview: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace Overview + Set up the essentials — name, description, currency, address, and subscription plan — all in one spot. + + + + Choose your workspace currency: Pick a default currency. No matter what currency members use, we’ll + convert everything automatically. + + , + + + Add workspace details: Give your workspace a name, add a quick description, and drop in your company + address. These show up on reports and invoices, so make it yours. + + , + + + Manage your subscription: Your plan controls what features you get and how much you pay per active + user. Hit Explore all plans to switch things up or adjust your size. + + , + ]} + /> + + ), + }, + categories: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Category Settings + + Categories help you organize expenses so your reports and accounting stay clean and easy to manage. Think of them as your chart of accounts or GL + codes. You can add them manually or, if you use accounting software, import them straight from the integration. + + + + + Category settings made simple: You can toggle categories on or off, add GL codes, and set rules like + receipt requirements or spending limits, all in one place under{' '} + Workspaces > [Workspace Name] > Categories. + + , + + + Smarter categorization, automatically: Expensify learns how you tag your expenses and starts + automatically applying those categories to similar merchants. This means less busywork and more accuracy. + + , + ]} + /> + + Learn More + + + Create Expense Categories + + , + + + Require Categories + + , + ]} + /> + + ), + }, + }, + }, }, - overview: { - content: ({styles}: {styles: ThemeStyles}) => ( + content: ({styles}: {styles: ThemeStyles}) => ( - Workspace Overview - Set up the essentials — name, description, currency, address, and subscription plan — all in one spot. - - - Choose your workspace currency: Pick a default currency. No matter what currency members use, we’ll convert everything automatically. - , - - Add workspace details: Give your workspace a name, add a quick description, and drop in your company address. These show up on reports and invoices, so make it yours. - , - - Manage your subscription: Your plan controls what features you get and how much you pay per active user. Hit Explore all plans to switch things up or adjust your size. - - ]} - /> + Workspaces 101 + + Think of a workspace as mission control for your company’s expenses. It’s where you set the rules, invite the team, and connect to your accounting tools. Each + workspace runs independently, so you can keep things tidy across departments, entities, or clients. + + Create a new workspace + + Hit the New workspace button to get started. Add a name, set a default currency, and you’re ready to get started customizing the + workspace settings! + + Invite your team + Add teammates to your workspace to manage expenses and approvals in one central place: + Members can submit and approve reports they’re assigned to., + Admins can approve all reports and manage workspace settings., + ]} + /> + Automate approvals + + Toggle on Add Approvals under Workflows to set a default first approver. Create custom + approval flows for individual team members if needed. + + Connect your accounting system + Link your workspace with QuickBooks Online, Xero, NetSuite, or Sage Intacct to sync expenses like a pro. + Enhance your workspace with extra features + + Under More Features, enable extras like the Expensify Card, distance rates, custom categories and tags, and company card + connections. + + + + Tip: If you manage multiple departments, clients, or entities, consider creating multiple workspaces. Separate workspaces can + help keep settings, approvals, and payments organized and more automated. + - ), + ), + }, + settings: { + children: { + preferences: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Preferences + + Your preferences shape how Expensify looks and feels just for you. Customize your language, theme, and notification settings to customize your experience + across all your devices. + + + + + Notifications: Decide which alerts you want to receive, such as feature updates, news, or sound + notifications. You’re in control. + + , + + + Priority mode: Choose how chats appear in your inbox – Focus on unread and pinned chats, or keep everything + visible, with the most recent messages shown at the top of the left-hand menu. + + , + + + Language options: You can update your interface in just a few clicks by choosing from 10 supported languages. + Choose your preferred language from the list, and your account will update automatically. + + , + + + Payment Currency: Set your default currency for expense tracking and reimbursements. + + , + <> + + Theme: Change the app’s appearance to suit your preference: + + + + Dark Mode - Easy on the eyes in low-light environments + , + + Light Mode - Bright, clean interface for well-lit spaces + , + + Use Device Settings - Automatically match your device’s theme + , + ]} + /> + , + ]} + /> + + + Note: Preference changes only affect your personal account view. Workspace members must update their own settings + individually. + + + ), + }, + security: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Security + + This is where you control who can access your account and how secure it is. From adding two-factor authentication to merging accounts, it’s all in one spot. + + + Two-Factor Authentication + + This adds an extra layer of protection to your Expensify account. Even if someone gets your login info, they won’t be able to access it without a code from + your authenticator app. + + + + Set it up in a minute: Use an app like Google Authenticator or Microsoft Authenticator to link your account. + + , + + + Don’t skip the backup codes: Download or save your recovery codes somewhere safe. You’ll need them if you + ever lose access to your app. + + , + + + How login works: You’ll log in with your email magic code and a 6-digit code from your authenticator app. + + , + ]} + /> + + Merge Accounts + + If you’ve ended up with two Expensify accounts, you can merge them to keep expense history and workspace access under a single login. + + + + Heads up: Merging is permanent and must be done from your company account by pulling in the personal one. + + , + + + How to merge: Under Account > Security > Merge accounts, add the + email address of the account you’re merging and then enter the magic code sent to your email. + + , + + + What moves over: Expenses, reports, cards, co-pilots — everything from the merged account rolls over into + your existing account. + + , + ]} + /> + + Report Suspicious Activity + + If something feels off or you’re concerned a bad actor has gained access to your account, report it by clicking{' '} + Report suspicious activity. This will fully lock down your account and halt Expensify Card transactions immediately. + + + Close Account + If you need to close your Expensify account, you can do that here — there are just a few things to check off first. + + + Before you close: Make sure to transfer ownerships, clear any balances, and update billing contacts. + + , + + + After closing the account: Shared reports and expenses will still be accessible to workspace admins, but all + your personal data will be wiped. + + , + ]} + /> + + Learn More + + + Two-Factor Authentication + + , + + + Report Suspicious Activity + + , + + + Merge Accounts + + , + + + Close Account + + , + ]} + /> + + ), + }, + subscription: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Subscription Plan + + Your subscription plan determines which features are available and how much you’re charged per active member. Choose the one that fits your team’s needs and + budget! + + + + + Expensify offers two plans – Collect and Control: The Collect plan is $5 per member each month. The Control + plan ranges from $9 to $36 per member/month, depending on your subscription commitment and how much your team uses the Expensify Card. + + , + + + Add a payment card: To pay for your subscription, add a payment card under{' '} + Account > Subscription. Charges will automatically be billed to this card each month. + + , + + + Change plan: You can switch plans by clicking Explore all plans. You can + upgrade your plan or increase your subscription size at any time. + + , + + + Request Tax-Exempt Status: Under{' '} + Account > Subscription > Subscription settings, click{' '} + Tax exempt status. This kicks off a chat with Concierge, where you can request that your account be + tax-exempt and then upload a PDF of your exemption document. Our team will review everything and reach out if we need anything else. + + , + ]} + /> + + Learn More + + + Billing Overview + + , + + + Change Workspace Plan + + , + + + Tax Exemption + + , + ]} + /> + + ), + }, + profile: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Profile + + Your profile is where you control how you show up in Expensify. Update your photo, name, status, and timezone so teammates know who they’re working with. + Private info like your legal name and address stays visible to you only. + + + + Setting your status: Add a custom status (yep, emojis included) to show if you’re in a meeting, out of + office, or just heads-down for a bit. + + , + + + Managing contact methods: Add backup emails or phone numbers to keep your account secure and accessible, even + if your primary email changes. + + , + ]} + /> + + ), + }, + wallet: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Wallet + + Your Wallet is the hub for all things money in Expensify. This is where you connect and manage your business and personal bank accounts, view company card + details, and control how money moves in and out of your organization. Whether you’re reimbursing employees, collecting payments, or issuing Expensify Cards, + it all starts here. + + + Business Bank Accounts + + Connect a verified business bank account to unlock smart features like reimbursements, bill pay, invoice collection, and the Expensify Card. + + + + Turn on payments: Head to{' '} + Workspaces > [Workspace Name] > More features, click{' '} + Enable workflows, then toggle on Make or track payments. From there, hit{' '} + Connect bank account to get started. + + , + + + Connect your account: Use Plaid to link your account in seconds, or enter your details manually. You’ll need + to upload an ID, add your company info, and verify the account with a few test transactions. + + , + <> + Once your account is verified, you can: + + Reimburse employees via ACH, + Pay vendors and suppliers, + Issue Expensify Cards to your team, + Collect invoice payments from clients, + ]} + /> + , + + Share access to the bank account with another admin: Under{' '} + Settings > Account > Wallet, click Share next to the bank account, and + enter the admin’s email. They’ll just need to revalidate the bank account on their end before they can issue payments. + , + ]} + /> + + Personal Bank Accounts + + If you want to get reimbursed or paid directly in Expensify, add a personal bank account — Expensify supports banks in over 190 countries. + + + + Add your bank account: Under Settings > Wallet > Bank accounts, + click Add bank account, choose your country, and connect via Plaid or enter your info manually. + + , + + + Note: Personal bank accounts are for receiving funds only. You’ll need a verified business bank account to + send payments or issue Expensify Cards. + + , + ]} + /> + + Assigned Cards + + Company cards are assigned at the workspace level, but are visible to the individual cardholder in their Wallet. The + cards sync automatically, so you can skip manually entering credit card expenses. + + + + See card details (Expensify Card): Click Reveal details to check your + card number, expiration date, and security code for online purchases. + + , + + + Track expenses smarter: Transactions pull in automatically and match with SmartScanned receipts to keep + records audit-ready. + + , + + + View transactions: Click on a connected card and then View transactions{' '} + to see all of the imported expenses from that company card. + + , + ]} + /> + + Learn More + + + Connect a Business Bank Account + + , + + + Connect a Personal Bank Account + + , + + + Expensify Cardholder Settings and Features + + , + ]} + /> + + ), + }, }, - categories: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Category Settings - Categories help you organize expenses so your reports and accounting stay clean and easy to manage. Think of them as your chart of accounts or GL codes. You can add them manually or, if you use accounting software, import them straight from the integration. - - - Category settings made simple: You can toggle categories on or off, add GL codes, and set rules like receipt requirements or spending limits, all in one place under Workspaces > [Workspace Name] > Categories. - , - - Smarter categorization, automatically: Expensify learns how you tag your expenses and starts automatically applying those categories to similar merchants. This means less busywork and more accuracy. - - ]} - /> - - Learn More - Create Expense Categories, - Require Categories - ]} - /> - - - ), + }, + new: { + children: { + task: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Tasks + + Keep conversations organized by letting you create actionable to-dos directly within a chat. You can assign them to yourself or others in both 1:1 and group + chats. + + + + Create a task: In any chat, click the + button next to the message field and select Assign a task. Add a + title (required) and an optional description, and choose an assignee from chat participants. You can also leave it unassigned to track it + yourself. + + , + + + Use tasks to stay on top of action items: Tasks are great for follow-ups like “Submit expense report,” “Share + slide deck,” or “Update mileage rate.” They’re perfect for 1:1 check-ins, project updates, or organizing next steps after a team discussion. + + , + + + Edit and manage tasks: Task creators and assignees can comment, edit the title or description, reassign the + task, or mark it as complete. Just click the task to update any details. + + , + + + Tasks stay visible: Each task is shared in the chat where it’s created. When completed, it will be clearly + marked in the chat and can be reopened if needed. + + , + ]} + /> + + ), + }, }, - }, }, - }, - content: ({styles}: {styles: ThemeStyles}) => ( - - Workspaces 101 - Think of a workspace as mission control for your company’s expenses. It’s where you set the rules, invite the team, and connect to your accounting tools. Each workspace runs independently, so you can keep things tidy across departments, entities, or clients. - Create a new workspace - Hit the New workspace button to get started. Add a name, set a default currency, and you’re ready to get started customizing the workspace settings! - Invite your team - Add teammates to your workspace to manage expenses and approvals in one central place: - Members can submit and approve reports they’re assigned to., - Admins can approve all reports and manage workspace settings. - ]} - /> - Automate approvals - Toggle on Add Approvals under Workflows to set a default first approver. Create custom approval flows for individual team members if needed. - Connect your accounting system - Link your workspace with QuickBooks Online, Xero, NetSuite, or Sage Intacct to sync expenses like a pro. - Enhance your workspace with extra features - Under More Features, enable extras like the Expensify Card, distance rates, custom categories and tags, and company card connections. - - Tip: If you manage multiple departments, clients, or entities, consider creating multiple workspaces. Separate workspaces can help keep settings, approvals, and payments organized and more automated. - - ), - }, - settings: { - children: { - preferences: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Preferences - Your preferences shape how Expensify looks and feels just for you. Customize your language, theme, and notification settings to customize your experience across all your devices. - - - Notifications: Decide which alerts you want to receive, such as feature updates, news, or sound notifications. You’re in control. - , - - Priority mode: Choose how chats appear in your inbox – Focus on unread and pinned chats, or keep everything visible, with the most recent messages shown at the top of the left-hand menu. - , - - Language options: You can update your interface in just a few clicks by choosing from 10 supported languages. Choose your preferred language from the list, and your account will update automatically. - , - - Payment Currency: Set your default currency for expense tracking and reimbursements. - , - <> - - - Theme: Change the app’s appearance to suit your preference: - - + search: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Reports Page + + The Reports page helps you explore and filter all reports and related expenses. It complements the Inbox by giving you a complete view of your expense history and + what expenses and reports require your action. Use this page to create and download spending reports, track report actions, and view the recent expense activity on + your workspace(s). + + + Expenses & Reports Dark Mode - Easy on the eyes in low-light environments, - Light Mode - Bright, clean interface for well-lit spaces, - Use Device Settings - Automatically match your device’s theme - ]} + styles={styles} + items={[ + + + Managing expenses: Click on any expense row to see its details in a side panel. Use checkboxes to select multiple + expenses, then use bulk actions like Move, Download, or Delete from the action menu. + + , + + + Filters: Looking for something specific? Use filters to narrow things down by date, category, merchant, tag, + workspace, or report status. You can also combine filters with keywords for even more precise results. + + , + + + Sort reports by status: - Draft – Only you can see it - Outstanding – Waiting on someone else - Approved – Ready to + pay - Done or Paid – All wrapped up + + , + + + Download what you need: Generate a report to download filtered expense data as a CSV. Perfect for spreadsheets, + monthly close, or syncing with accounting. + + , + ]} /> - - - - ]} - /> - - Note: Preference changes only affect your personal account view. Workspace members must update their own settings individually. - - ), - }, - security: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Security - This is where you control who can access your account and how secure it is. From adding two-factor authentication to merging accounts, it’s all in one spot. - - Two-Factor Authentication - This adds an extra layer of protection to your Expensify account. Even if someone gets your login info, they won’t be able to access it without a code from your authenticator app. - - Set it up in a minute: Use an app like Google Authenticator or Microsoft Authenticator to link your account. - , - - Don’t skip the backup codes: Download or save your recovery codes somewhere safe. You’ll need them if you ever lose access to your app. - , - - How login works: You’ll log in with your email magic code and a 6-digit code from your authenticator app. - - ]} - /> - - Merge Accounts - If you’ve ended up with two Expensify accounts, you can merge them to keep expense history and workspace access under a single login. - - Heads up: Merging is permanent and must be done from your company account by pulling in the personal one. - , - - How to merge: Under Account > Security > Merge accounts, add the email address of the account you’re merging and then enter the magic code sent to your email. - , - - What moves over: Expenses, reports, cards, co-pilots — everything from the merged account rolls over into your existing account. - - ]} - /> - - Report Suspicious Activity - If something feels off or you’re concerned a bad actor has gained access to your account, report it by clicking Report suspicious activity. This will fully lock down your account and halt Expensify Card transactions immediately. - - Close Account - If you need to close your Expensify account, you can do that here — there are just a few things to check off first. - - Before you close: Make sure to transfer ownerships, clear any balances, and update billing contacts. - , - - After closing the account: Shared reports and expenses will still be accessible to workspace admins, but all your personal data will be wiped. - - ]} - /> - - Learn More - Two-Factor Authentication, - Report Suspicious Activity, - Merge Accounts, - Close Account - ]} - /> - - ), - }, - subscription: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Subscription Plan - Your subscription plan determines which features are available and how much you’re charged per active member. Choose the one that fits your team’s needs and budget! - - - Expensify offers two plans – Collect and Control: The Collect plan is $5 per member each month. The Control plan ranges from $9 to $36 per member/month, depending on your subscription commitment and how much your team uses the Expensify Card. - , - - Add a payment card: To pay for your subscription, add a payment card under Account > Subscription. Charges will automatically be billed to this card each month. - , - - Change plan: You can switch plans by clicking Explore all plans. You can upgrade your plan or increase your subscription size at any time. - , - - Request Tax-Exempt Status: Under Account > Subscription > Subscription settings, click Tax exempt status. This kicks off a chat with Concierge, where you can request that your account be tax-exempt and then upload a PDF of your exemption document. Our team will review everything and reach out if we need anything else. - - ]} - /> - - Learn More - Billing Overview, - Change Workspace Plan, - Tax Exemption - ]} - /> - - ), - }, - profile: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Profile - Your profile is where you control how you show up in Expensify. Update your photo, name, status, and timezone so teammates know who they’re working with. Private info like your legal name and address stays visible to you only. - - Setting your status: Add a custom status (yep, emojis included) to show if you’re in a meeting, out of office, or just heads-down for a bit. - , - - Managing contact methods: Add backup emails or phone numbers to keep your account secure and accessible, even if your primary email changes. - - ]} - /> - - ), - }, - wallet: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Wallet - Your Wallet is the hub for all things money in Expensify. This is where you connect and manage your business and personal bank accounts, view company card details, and control how money moves in and out of your organization. Whether you’re reimbursing employees, collecting payments, or issuing Expensify Cards, it all starts here. - - Business Bank Accounts - Connect a verified business bank account to unlock smart features like reimbursements, bill pay, invoice collection, and the Expensify Card. - - Turn on payments: Head to Workspaces > [Workspace Name] > More features, click Enable workflows, then toggle on Make or track payments. From there, hit Connect bank account to get started. - , - - Connect your account: Use Plaid to link your account in seconds, or enter your details manually. You’ll need to upload an ID, add your company info, and verify the account with a few test transactions. - , - <> - Once your account is verified, you can: - - + + Chats Reimburse employees via ACH, - Pay vendors and suppliers, - Issue Expensify Cards to your team, - Collect invoice payments from clients - ]} + styles={styles} + items={[ + + + Viewing report previews: Each report preview shows up right in your workspace chat with the status, up to 10 + expenses, and buttons like Submit or Approve, depending on your role. + + , + + + Filter chats: Use filters to find the exact chat you’re looking for. + + , + ]} /> - - - , - Share access to the bank account with another admin: Under Settings > Account > Wallet, click Share next to the bank account, and enter the admin’s email. They’ll just need to revalidate the bank account on their end before they can issue payments. - ]} - /> - - Personal Bank Accounts - If you want to get reimbursed or paid directly in Expensify, add a personal bank account — Expensify supports banks in over 190 countries. - - Add your bank account: Under Settings > Wallet > Bank accounts, click Add bank account, choose your country, and connect via Plaid or enter your info manually. - , - - Note: Personal bank accounts are for receiving funds only. You’ll need a verified business bank account to send payments or issue Expensify Cards. - - ]} - /> - - Assigned Cards - Company cards are assigned at the workspace level, but are visible to the individual cardholder in their Wallet. The cards sync automatically, so you can skip manually entering credit card expenses. - - See card details (Expensify Card): Click Reveal details to check your card number, expiration date, and security code for online purchases. - , - - Track expenses smarter: Transactions pull in automatically and match with SmartScanned receipts to keep records audit-ready. - , - - View transactions: Click on a connected card and then View transactions to see all of the imported expenses from that company card. - - ]} - /> - - Learn More - Connect a Business Bank Account, - Connect a Personal Bank Account, - Expensify Cardholder Settings and Features - ]} - /> - - ), - }, - }, - }, - new: { - children: { - task: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Tasks - Keep conversations organized by letting you create actionable to-dos directly within a chat. You can assign them to yourself or others in both 1:1 and group chats. - - Create a task: In any chat, click the + button next to the message field and select Assign a task. Add a title (required) and an optional description, and choose an assignee from chat participants. You can also leave it unassigned to track it yourself. - , - - Use tasks to stay on top of action items: Tasks are great for follow-ups like “Submit expense report,” “Share slide deck,” or “Update mileage rate.” They’re perfect for 1:1 check-ins, project updates, or organizing next steps after a team discussion. - , - - Edit and manage tasks: Task creators and assignees can comment, edit the title or description, reassign the task, or mark it as complete. Just click the task to update any details. - , - - Tasks stay visible: Each task is shared in the chat where it’s created. When completed, it will be clearly marked in the chat and can be reopened if needed. - - ]} - /> - - ), + + To-Do + + + Stay on top of tasks: The To-do section shows exactly what needs your attention. This is your go-to spot to keep + things moving. + + , + + + Action items: Whether you need to submit, approve, or pay expenses, you can click the corresponding action to + complete any outstanding to-dos. + + , + ]} + /> + + Learn More + + + The Reports Page + + , + + + Understanding Reports Statuses and Actions + + , + + + Suggested Search + + , + + + Search and Download Expenses + + , + ]} + /> + + ), }, - }, }, - search: { - content: ({styles}: {styles: ThemeStyles}) => ( - - Reports Page - The Reports page helps you explore and filter all reports and related expenses. It complements the Inbox by giving you a complete view of your expense history and what expenses and reports require your action. Use this page to create and download spending reports, track report actions, and view the recent expense activity on your workspace(s). - - Expenses & Reports - - Managing expenses: Click on any expense row to see its details in a side panel. Use checkboxes to select multiple expenses, then use bulk actions like Move, Download, or Delete from the action menu. - , - - Filters: Looking for something specific? Use filters to narrow things down by date, category, merchant, tag, workspace, or report status. You can also combine filters with keywords for even more precise results. - , - - Sort reports by status: - - Draft – Only you can see it - - Outstanding – Waiting on someone else - - Approved – Ready to pay - - Done or Paid – All wrapped up - , - - Download what you need: Generate a report to download filtered expense data as a CSV. Perfect for spreadsheets, monthly close, or syncing with accounting. - - ]} - /> - - Chats - - Viewing report previews: Each report preview shows up right in your workspace chat with the status, up to 10 expenses, and buttons like Submit or Approve, depending on your role. - , - - Filter chats: Use filters to find the exact chat you’re looking for. - - ]} - /> - - To-Do - - Stay on top of tasks: The To-do section shows exactly what needs your attention. This is your go-to spot to keep things moving. - , - - Action items: Whether you need to submit, approve, or pay expenses, you can click the corresponding action to complete any outstanding to-dos. - - ]} - /> - - Learn More - The Reports Page, - Understanding Reports Statuses and Actions, - Suggested Search, - Search and Download Expenses - ]} - /> - - ), - }, - }, - content: () => null, -} + content: () => null, +}; export default helpContentMap; export type {ContentComponent}; From 668b99ac5be7edecebbc7b005d5b586b7e92bd7a Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Wed, 13 Aug 2025 19:26:48 +0200 Subject: [PATCH 7/9] Fix eslint --- src/components/SidePanel/HelpContent/helpContentMap.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 3202ac28f6ca..22ab069da4bd 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -1,3 +1,5 @@ +/* eslint-disable react/jsx-key */ + /* eslint-disable react/no-unescaped-entities */ /* eslint-disable @typescript-eslint/naming-convention */ From 4bb0867fae84197bfb4b99a01be45f39b566bc2c Mon Sep 17 00:00:00 2001 From: Blazej Kustra Date: Tue, 19 Aug 2025 16:51:00 +0200 Subject: [PATCH 8/9] Refactor spacing in help content and update styles for headings. --- help/_plugins/SitePostRender.rb | 25 +++++++-- .../ref/workspaces/:policyID/members/index.md | 8 --- .../SidePanel/HelpContent/helpContentMap.tsx | 52 +++++++++---------- 3 files changed, 46 insertions(+), 39 deletions(-) diff --git a/help/_plugins/SitePostRender.rb b/help/_plugins/SitePostRender.rb index 86cb546bc5aa..05e8dd824b20 100644 --- a/help/_plugins/SitePostRender.rb +++ b/help/_plugins/SitePostRender.rb @@ -137,6 +137,7 @@ def self.generate_imports(components) def self.generate_ts_output(import_block, help_content_string) <<~TS + /* eslint-disable react/jsx-key */ /* eslint-disable react/no-unescaped-entities */ /* eslint-disable @typescript-eslint/naming-convention */ #{import_block} @@ -236,7 +237,17 @@ def self.process_div(node, indent_level) end def self.process_heading(node, indent_level) - return "#{' ' * indent_level}#{CGI.escapeHTML(node.text).strip}" + classes = ["styles.textHeadline#{node.name.upcase}"] + + # If a list follows immediately, don't add the normal bottom margin + if %w[ul ol].include?(node.next_element&.name) + classes << 'styles.mt4' + else + classes << 'styles.mv4' + end + + text = CGI.escapeHTML(node.text).strip + "#{' ' * indent_level}#{text}" end def self.process_unordered_list(node, indent_level) @@ -302,8 +313,16 @@ def self.process_paragraph(node, indent_level) inner = node.children.map { |c| html_node_to_RN(c, indent_level + 1) }.join style_classes = ['styles.textNormal'] - style_classes << 'styles.mt4' if node.previous_element&.name == 'ul' - style_classes << 'styles.mb4' if node.next_element&.name == 'p' + + # Add spacing if previous sibling is a list (ul or ol) + if %w[ul ol].include?(node.previous_element&.name) + style_classes << 'styles.mt4' + end + + # Add spacing if the next element is another paragraph + if node.next_element&.name == 'p' + style_classes << 'styles.mb4' + end "#{' ' * indent_level}#{inner.strip}" end diff --git a/help/ref/workspaces/:policyID/members/index.md b/help/ref/workspaces/:policyID/members/index.md index 991a3dc302b8..8490565c0f91 100644 --- a/help/ref/workspaces/:policyID/members/index.md +++ b/help/ref/workspaces/:policyID/members/index.md @@ -27,8 +27,6 @@ Invite teammates to your workspace and assign roles to control their access and - Add comments, but cannot modify expenses - No approval or payment permissions ---- - ## Adding Members 1. Under **Workspaces > [Workspace Name] > Members**, click **Invite Member** @@ -38,8 +36,6 @@ Invite teammates to your workspace and assign roles to control their access and **Alternative:** Share the workspace URL or QR code from **Account > Profile > Share** ---- - ## Managing Members **Change Role:** @@ -54,8 +50,6 @@ Invite teammates to your workspace and assign roles to control their access and 2. Click **Remove from Workspace** 3. Confirm removal ---- - ## Transfer Ownership of a Workspace 1. Go to **Members** and click current **Owner** @@ -63,8 +57,6 @@ Invite teammates to your workspace and assign roles to control their access and 3. Confirm transfer 4. You become the new owner ---- - ## Learn More - [Managing Workspace Members](https://help.expensify.com/articles/new-expensify/workspaces/Managing-Workspace-Members) diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 22ab069da4bd..1e9957a76fc7 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -472,7 +472,7 @@ const helpContentMap: HelpContent = { Scan Receipt SmartScan automatically extracts expense details from receipt images. - How to Scan + How to Scan , ]} /> - What SmartScan Detects + What SmartScan Detects , ]} /> - Supported Receipt Types + Supported Receipt Types , ]} /> - Tips for Best Results + Tips for Best Results Straight angles work better than tilted photos, ]} /> - After Scanning + After Scanning SmartScan learns from your corrections, ]} /> - Related Links + Related Links - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More No approval or payment permissions, ]} /> - - Adding Members + Adding Members , ]} /> - + Alternative: Share the workspace URL or QR code from{' '} Account > Profile > Share - Managing Members Change Role: @@ -1187,7 +1185,7 @@ const helpContentMap: HelpContent = { Confirm changes, ]} /> - + Remove Member: Confirm removal, ]} /> - - Transfer Ownership of a Workspace + Transfer Ownership of a Workspace You become the new owner, ]} /> - - Learn More + Learn More , ]} /> - + You can choose from field types like Text, Date, or a List with predefined options — whatever best fits your workflow. Learn more ➡️{' '} - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More - Expenses & Reports + Expenses & Reports - Chats + Chats - To-Do + To-Do - Learn More + Learn More Date: Wed, 20 Aug 2025 17:03:18 +0200 Subject: [PATCH 9/9] Enhance spacing for help content headings --- help/_plugins/SitePostRender.rb | 1 + .../SidePanel/HelpContent/helpContentMap.tsx | 42 +++++++++---------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/help/_plugins/SitePostRender.rb b/help/_plugins/SitePostRender.rb index 05e8dd824b20..2ff412f199f3 100644 --- a/help/_plugins/SitePostRender.rb +++ b/help/_plugins/SitePostRender.rb @@ -242,6 +242,7 @@ def self.process_heading(node, indent_level) # If a list follows immediately, don't add the normal bottom margin if %w[ul ol].include?(node.next_element&.name) classes << 'styles.mt4' + classes << 'styles.mb1' else classes << 'styles.mv4' end diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 1e9957a76fc7..6f9c180c418d 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -472,7 +472,7 @@ const helpContentMap: HelpContent = { Scan Receipt SmartScan automatically extracts expense details from receipt images. - How to Scan + How to Scan , ]} /> - What SmartScan Detects + What SmartScan Detects , ]} /> - Supported Receipt Types + Supported Receipt Types , ]} /> - Tips for Best Results + Tips for Best Results Straight angles work better than tilted photos, ]} /> - After Scanning + After Scanning SmartScan learns from your corrections, ]} /> - Related Links + Related Links - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More No approval or payment permissions, ]} /> - Adding Members + Adding Members Confirm removal, ]} /> - Transfer Ownership of a Workspace + Transfer Ownership of a Workspace You become the new owner, ]} /> - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More - Learn More + Learn More - Expenses & Reports + Expenses & Reports - Chats + Chats - To-Do + To-Do - Learn More + Learn More