[No QA] Copy platform-agnostic integrations to Connections hub#88762
[No QA] Copy platform-agnostic integrations to Connections hub#88762
Conversation
| --- | ||
| title: Egencia | ||
| description: Learn how to integrate Egencia with Expensify to automatically import travel booking receipts and expenses. | ||
| keywords: [Egencia, travel booking, Expensify Classic] |
There was a problem hiding this comment.
Missing YAML metadata: The internalScope field is required per HELP_AUTHORING_GUIDELINES.md Section 3. Add an internalScope line describing the audience and scope, e.g.:
internalScope: Audience is Workspace Admins. Covers integrating Egencia with Expensify for automated travel expense imports. Does not cover Egencia account setup.
| description: Learn how to integrate Egencia with Expensify to automatically import travel booking receipts and expenses. | ||
| keywords: [Egencia, travel booking, Expensify Classic] | ||
| --- | ||
|
|
There was a problem hiding this comment.
Missing # article title: Every article must have exactly one # heading as the article title (matching the YAML title field). This file jumps straight into body text without a # Egencia heading. Add # Egencia after the YAML frontmatter, before the introductory paragraph.
| keywords: [Egencia, travel booking, Expensify Classic] | ||
| --- | ||
|
|
||
|
|
There was a problem hiding this comment.
Wrong introductory text: This paragraph describes the Expensify API and mentions NetSuite, Xero, and Workday -- it appears to be copied from the Expensify-API article rather than written for Egencia. Replace with an introduction relevant to the Egencia integration.
| Expensify’s API helps connect your account to third-party tools like NetSuite, Xero, and even internal systems like Workday. This guide includes tips, usage examples, and common troubleshooting questions — many sourced from customers who’ve done it before. | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
Multiple # headings / forbidden heading: Only one # heading (the article title) is allowed, plus an optional # FAQ. # Getting Started is both an extra # heading and a generic/forbidden heading name. Demote to ## and rename to a task-based heading, e.g. ## How to get started with the Egencia integration.
| **Note:** The API is a self-serve tool. Your internal team will need to manage setup and maintenance. While Concierge can assist with basic troubleshooting, hands-on support may vary by team or account manager. | ||
|
|
||
| [Egencia](https://www.egencia.com/en/) is a business travel booking platform. Integrating Egencia with Expensify allows travel bookings to be automatically imported as expenses, ensuring seamless expense tracking. | ||
|
|
There was a problem hiding this comment.
Non-task-based heading: ## Requirements is a noun-only heading. Rename to a task-based heading starting with an action verb or question word, e.g. ## Who can use the Egencia integration.
| - A **verified Domain** | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
Multiple # headings / non-task-based heading: # How Egencia Works with Expensify is an additional # heading (only one allowed). Demote to ##. The heading itself is acceptable as a task-based heading at ## level: ## How Egencia works with Expensify.
| - Travel details are also accessible in the **Trips** section of the Expensify mobile app. | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
Multiple # headings / non-task-based heading: # Enabling the Egencia Feed is another extra # heading. Demote to ## and rephrase as task-based: ## How to enable the Egencia feed.
| **Note:** Egencia controls the feed setup process. | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
Multiple # headings / non-task-based heading: # Connecting a Central Purchasing Account is another extra # heading. Demote to ## and rephrase as task-based: ## How to connect a central purchasing account.
|
|
||
| # Connecting a Central Purchasing Account | ||
| If your company uses a **central purchasing account**, you can forward all Egencia booking receipts to a single Expensify account. | ||
|
|
There was a problem hiding this comment.
Forbidden heading pattern: ## Steps to Enable a Central Purchasing Account uses a noun-phrase pattern ("Steps to...") rather than a task-based verb form. Rename to ## How to enable a central purchasing account.
| --- | ||
| title: Expensify API | ||
| description: User-sourced tips and tricks for using Expensify’s API. | ||
| keywords: [Expensify Classic, API] |
There was a problem hiding this comment.
Missing YAML metadata: The internalScope field is required per HELP_AUTHORING_GUIDELINES.md Section 3. Add an internalScope line, e.g.:
internalScope: Audience is Workspace Admins and developers. Covers tips and troubleshooting for using Expensify's API. Does not cover direct accounting integrations.
|
|
||
| --- | ||
|
|
||
| # Getting Started |
There was a problem hiding this comment.
Multiple # headings / forbidden heading: # Getting Started is both an extra # heading (only one # allowed -- the article title -- plus optional # FAQ) and a generic/forbidden heading name per HELP_AUTHORING_GUIDELINES.md Section 2. Demote to ## and rename to a task-based heading, e.g. ## How to get started with the Expensify API.
| description: User-sourced tips and tricks for using Expensify’s API. | ||
| keywords: [Expensify Classic, API] | ||
| --- | ||
|
|
There was a problem hiding this comment.
Missing # article title: The article body starts without a # Expensify API heading matching the YAML title. Every article must have exactly one # heading as the article title. Add # Expensify API before the introductory paragraph.
| Going over this will return a `429` error. | ||
|
|
||
| ## What is a Policy ID? | ||
|
|
There was a problem hiding this comment.
Terminology violation: Use "Workspace" instead of "Policy" in user-facing documentation. "Policy ID" should be referred to as "Workspace ID". Rename this heading to ## What is a Workspace ID? and update the body text accordingly.
| ``` | ||
| Your Workspace ID is `0810E551A5F2A9C2`. | ||
|
|
||
| ## Can I use the parent type `file` to export workspace/policy data? |
There was a problem hiding this comment.
Terminology violation: Use "workspace" instead of "policy" in user-facing text. Change "workspace/policy data" to "workspace data" and update the body text to use "workspace" consistently instead of "policy information" / "policy data".
| If you need this access, contact concierge@expensify.com and reference this help page. | ||
|
|
||
| # Using Postman | ||
|
|
There was a problem hiding this comment.
Multiple # headings / non-task-based heading: # Using Postman is an extra # heading and is not task-based. Demote to ## and rephrase: ## How to use Postman with the Expensify API.
|
|
||
| Many customers use Postman to help them build out their APIs. Below are some guides contributed by our customers. Please note, in all cases, you will need to first generate your authentication credentials, the steps for which can be found [here](https://integrations.expensify.com/Integration-Server/doc/#introduction) and have them ready: | ||
|
|
||
| ## Download expenses from a report as a CSV file |
There was a problem hiding this comment.
Non-task-based heading: ## Download expenses from a report as a CSV file is a noun-phrase/topic heading. Rephrase to start with a verb or question word: ## How to download expenses from a report as a CSV file.
|
|
||
| **Step 1: Get the ID of a report you want to export in Expensify** | ||
|
|
||
| Find the ID by opening the expense report and clicking Details at the top right corner of the page. At the top of the menu, the ID is provided as the “Long ID.” |
There was a problem hiding this comment.
Forbidden heading pattern: **Step 1: ...** uses a "Step N" pattern which is forbidden per HELP_AUTHORING_GUIDELINES.md Section 2. Use numbered steps within a section instead of step-based sub-headings. The same applies to Step 2, Step 3, and Step 4 below.
|
|
||
| **Step 2: Export (generate) a "Report" as a CSV file** | ||
| {% include info.html %} | ||
| For this you'll use the Documentation under [Report Exporter](https://integrations.expensify.com/Integration-Server/doc/#export). |
There was a problem hiding this comment.
Liquid include syntax: {% include info.html %} and {% include end-info.html %} are Liquid template tags that may not render correctly in the new-expensify docs context. Verify these are supported, or replace with standard Markdown formatting.
|
|
||
| *Thank you to our customer Frederico Pettinella who originally wrote and shared this guide.* | ||
|
|
||
| ## Use Advanced Employee Updater API with Postman |
There was a problem hiding this comment.
Non-task-based heading: ## Use Advanced Employee Updater API with Postman should start with "How to": ## How to use the Advanced Employee Updater API with Postman.
| --- | ||
| title: Global VaTax Integration | ||
| description: Learn how to connect Expensify with Global VaTax to simplify international VAT refunds for your business expenses. | ||
| keywords: [Expensify CLassic, Global VaTax, VAT refund, international expenses, tax compliance] |
There was a problem hiding this comment.
Typo in YAML metadata: keywords contains "Expensify CLassic" -- should be "Expensify Classic" (lowercase "l").
| title: Global VaTax Integration | ||
| description: Learn how to connect Expensify with Global VaTax to simplify international VAT refunds for your business expenses. | ||
| keywords: [Expensify CLassic, Global VaTax, VAT refund, international expenses, tax compliance] | ||
| --- |
There was a problem hiding this comment.
Missing YAML metadata: The internalScope field is required per HELP_AUTHORING_GUIDELINES.md Section 3. Add an internalScope line describing the audience and scope.
| keywords: [Expensify CLassic, Global VaTax, VAT refund, international expenses, tax compliance] | ||
| --- | ||
|
|
||
|
|
There was a problem hiding this comment.
Missing # article title: Every article must have exactly one # heading as the article title matching the YAML title field. Add # Global VaTax Integration before the introductory paragraph.
| --- | ||
|
|
||
| # VAT-Recoverable Expenses | ||
|
|
There was a problem hiding this comment.
Multiple # headings / non-task-based heading: # VAT-Recoverable Expenses is an extra # heading (only one allowed) and is a noun-only heading. Demote to ## and rephrase as task-based: ## What expenses are eligible for VAT recovery.
|
|
||
| --- | ||
|
|
||
| # How VAT Refunds Work |
There was a problem hiding this comment.
Multiple # headings: # How VAT Refunds Work is an extra # heading. Demote to ## How VAT refunds work with Global VaTax.
| - You must be an **admin** of a **Group Workspace** with a **Collect or Control** subscription. | ||
| - You must have **Administrator access** to the Google Apps Admin console. | ||
|
|
||
| > **Note:** Google Apps SSO is different from using Google as an Identity Provider for **SAML SSO**, which restricts domain access. If you need **Google SAML SSO**, follow [Google’s guide](https://support.google.com/a/answer/7371682). You can enable both simultaneously. |
There was a problem hiding this comment.
Forbidden generic heading: ## Requirements: is a generic/noun-only heading (forbidden per HELP_AUTHORING_GUIDELINES.md Section 2). Headings must start with an action verb or question word. Consider: ## Who can enable Google Apps SSO with Expensify.
|
|
||
| To integrate Expensify with your Google Apps domain and add an **Expenses** shortcut to your Google navigation bar: | ||
|
|
||
| 1. **Sign in** to your **Google Apps Admin console** as an administrator. |
There was a problem hiding this comment.
Structural violation: # How to Enable Expensify on Google Apps uses # heading level, but only one # heading is allowed (the article title). This file is missing a # Google Apps SSO title heading matching the YAML title. Both # How to Enable... (line 22) and # How to Sync... (line 36) must be demoted to ##.
|
|
||
| 1. **Complete the Google Apps installation steps** above. | ||
| 2. Log in to [Expensify](https://www.expensify.com/). | ||
| 3. Go to **Settings > Workspaces > Group** or [click here](https://www.expensify.com/admin_policies?param={"section":"group"}). |
There was a problem hiding this comment.
Cross-linking violation: Full URLs like https://www.expensify.com/ and https://www.expensify.com/admin_policies?param=... should not be used. Per HELP_AUTHORING_GUIDELINES.md Section 7, use relative links only for internal Expensify references. Additionally, links should not be placed inside numbered step instructions (line 41).
| --- | ||
| title: Greenhouse | ||
| description: Learn how to integrate Greenhouse with Expensify to automatically send candidates for seamless reimbursement. | ||
| keywords: [Greenhouse, Expensify Classic, integration, candidate reimbursement] |
There was a problem hiding this comment.
Missing metadata: The keywords array must include "New Expensify" since this article lives under new-expensify/. The required internalScope field is also missing from the YAML frontmatter.
|
|
||
| --- | ||
|
|
||
| # Prerequisites |
There was a problem hiding this comment.
Forbidden generic heading / structural violation: # Prerequisites is a generic heading (forbidden per HELP_AUTHORING_GUIDELINES.md Section 2 -- similar to "Requirements"). It also uses # level when only the title heading should. The file is missing a # Greenhouse title heading. Consider demoting to ## Who can connect Greenhouse to Expensify. The same # issue applies to # Connect Greenhouse to Expensify (line 22) and # Sending Candidates from Greenhouse to Expensify (line 48) -- demote both to ##.
|
|
||
| # Connect Greenhouse to Expensify | ||
|
|
||
| ## Step 1: Establish the Connection |
There was a problem hiding this comment.
Forbidden heading pattern: ## Step 1: Establish the Connection, ## Step 2: Create the WebHook (line 30), and ## Step 3: Create the Custom Candidate Field (line 37) all use the forbidden "Step 1/2/3" pattern. Per HELP_AUTHORING_GUIDELINES.md, headings like "Step 1" are explicitly forbidden. Instead, use numbered steps within a single ## How to connect Greenhouse to Expensify section, or use task-based sub-headings like ## How to establish the Greenhouse connection, ## How to create the webhook, ## How to create the custom candidate field.
|
|
||
| # Sending Candidates from Greenhouse to Expensify | ||
|
|
||
| ## In Greenhouse |
There was a problem hiding this comment.
Non-task-based headings: ## In Greenhouse (line 50) and ## In Expensify (line 59) are platform-only labels, which are forbidden. Headings must describe an action or question. Consider: ## How to send a candidate from Greenhouse to Expensify and ## How to verify the candidate in Expensify.
| --- | ||
| title: Indirect Accounting Integrations | ||
| description: Learn how to export expenses and reports using a flat-file template compatible with your accounting software. | ||
| keywords: [Expensify Classic, accounting integration, export template, indirect integration, flat-file import] |
There was a problem hiding this comment.
Missing metadata: The keywords array must include "New Expensify" since this article lives under new-expensify/. The required internalScope field is also missing from the YAML frontmatter.
|
|
||
| --- | ||
|
|
||
| # Set Up an Indirect Accounting Integration |
There was a problem hiding this comment.
Structural violation: # Set Up an Indirect Accounting Integration uses # heading level but only one # heading is allowed (the article title). The file is missing a # Indirect Accounting Integrations title heading matching the YAML title. This and # Exporting Reports for Your Accounting Software (line 33) must be demoted to ##.
|
|
||
| # Set Up an Indirect Accounting Integration | ||
|
|
||
| ## From the Home Page |
There was a problem hiding this comment.
Non-task-based heading: ## From the Home Page (line 16) and ## From Workspace Settings (line 24) are location-based labels, not task-based. Headings must start with an action verb or question word. Consider: ## How to set up an indirect integration from the Home page and ## How to set up an indirect integration from Workspace settings.
|
|
||
| Expensify provides two ways to export reports: | ||
|
|
||
| ## Export a Single Report |
There was a problem hiding this comment.
Non-task-based headings: ## Export a Single Report (line 37) and ## Export Multiple Reports (line 42) are noun-phrase headings that don't start with an action verb or question word. Consider: ## How to export a single report and ## How to export multiple reports.
| --- | ||
| title: Lyft | ||
| description: Learn how to connect your Lyft Business Profile with Expensify to automatically import receipts for work-related rides. | ||
| keywords: [Lyft, Expensify Classic, Business Profile, receipts, integration, expense management] |
There was a problem hiding this comment.
Missing metadata: The keywords array must include "New Expensify" since this article lives under new-expensify/. The required internalScope field is also missing from the YAML frontmatter.
|
|
||
| Expensify seamlessly integrates with Lyft, allowing you to automatically import receipts for work-related rides into your Expensify account. | ||
|
|
||
| --- |
There was a problem hiding this comment.
Structural violation: The YAML title is "Lyft", so the article must have exactly one # Lyft heading as the title. Instead, this file uses # Connect a Lyft Business Profile to Expensify (line 10) and # Set Up Lyft for Business with Expensify (line 24) as #-level headings. Add a # Lyft title heading and demote both of these to ##.
| --- | ||
| title: Navan | ||
| description: Learn how to connect Navan with Expensify to automatically sync travel receipts for easy expense reporting. | ||
| keywords: [Navan, Expensify Classic, travel integration, expense automation, flight receipts] |
There was a problem hiding this comment.
Missing metadata: The keywords array must include "New Expensify" since this article lives under new-expensify/. The required internalScope field is also missing from the YAML frontmatter.
| --- | ||
|
|
||
| Navan users can link their Expensify accounts to automatically sync flight receipts, making expense reporting seamless and efficient. | ||
|
|
There was a problem hiding this comment.
Structural violation: The YAML title is "Navan", so the article must have a # Navan title heading. Instead, # Connect Navan to Expensify (line 8) is the first # heading. Add a # Navan title heading before the intro paragraph and demote # Connect Navan to Expensify to ## How to connect Navan to Expensify.
|
|
||
| title: Connecting Perk to Expensify | ||
| description: Learn how to integrate Perk with Expensify to automate travel expense tracking. | ||
| keywords: [Expensify Classic, Perk integration, connect Perk to Expensify, Travel Perk, travel booking sync, receipts@expensify.com, travel expenses, Receipt upload problem] |
There was a problem hiding this comment.
Keywords issue: The keywords array references "Expensify Classic" but this article lives under new-expensify/. It should include "New Expensify" instead. Also, internalScope explicitly says "Does not cover ... New Expensify" -- if this article is being placed in the New Expensify section, the scope and keywords should reflect that.
| --- | ||
|
|
||
| # Connecting Perk to Expensify | ||
|
|
There was a problem hiding this comment.
Structural violation: # Connecting Perk to Expensify is a second # heading (the title # Connecting Perk to Expensify from the YAML frontmatter should be the only # heading). This heading duplicates the title. The content below it should flow under the title heading directly, or this should be demoted to a ## task-based heading. The same issue applies to # FAQ which is acceptable, but check that no other # headings exist beyond the title and FAQ.
| --- | ||
| title: Rippling | ||
| description: Learn how to sync employee and expense data between Expensify and Rippling for seamless management. | ||
| keywords: [Rippling, Expensify integration, employee sync, expense reports, payroll] |
There was a problem hiding this comment.
Missing metadata: The keywords array must include "New Expensify" since this article lives under new-expensify/. The required internalScope field is also missing from the YAML frontmatter.
|
|
||
| Expensify’s integration with Rippling allows you to sync employee and expense data effortlessly. This connection helps automate employee management, simplify access, and streamline expense reporting. | ||
|
|
||
| # Benefits of the Rippling Integration |
There was a problem hiding this comment.
Structural violation / non-task-based heading: # Benefits of the Rippling Integration is a noun-only heading (forbidden) and uses # heading level when only the title should. The file is missing a # Rippling title heading matching the YAML title. Both # Benefits of the Rippling Integration (line 9) and # How to Connect Expensify to Rippling (line 17) must be demoted to ##. Suggested rewrite for line 9: ## What the Rippling integration does.
| --- | ||
| title: Travel Receipt Integrations | ||
| description: Learn how to use pre-built or custom integrations to automatically track travel expenses in Expensify. | ||
| keywords: [Expensify Classic, travel receipts, integrations, Bolt Work, SpotHero, Grab, KAYAK, email receipts] |
There was a problem hiding this comment.
Missing metadata: The keywords array must include "New Expensify" since this article lives under new-expensify/. The required internalScope field is also missing from the YAML frontmatter.
| Expensify’s receipt integrations allow merchants to automatically send receipts directly to a member’s Expensify account. When a merchant emails a receipt to a member and Cc's **receipts@expensify.com**, Expensify creates a transaction in the account of the email recipient. | ||
|
|
||
| You can integrate receipts using Expensify’s pre-built integrations or by setting up a custom receipt integration. | ||
|
|
There was a problem hiding this comment.
Structural violation: This file has many #-level headings but is missing a # Travel Receipt Integrations title heading matching the YAML title. Only one # heading (the title) plus optional # FAQ are allowed. All of these must be demoted to ##: # Use a Pre-Built Travel Integration (line 11), # KAYAK for Business (line 59), # Build Your Own Receipt Integration (line 77), # Using the Integration (line 91).
|
|
||
| --- | ||
|
|
||
| # Use a Pre-Built Travel Integration |
There was a problem hiding this comment.
Non-task-based headings: ## Bolt Work (line 14), ## SpotHero (line 29), ## Grab (line 38), ## Delta for Business (line 52) are all noun-only/platform-only headings, which are forbidden. Headings must start with an action verb or question word. Consider: ## How to connect Bolt Work to Expensify, ## How to connect SpotHero to Expensify, ## How to connect Grab to Expensify, ## How to connect Delta for Business to Expensify.
| 9. Select **Expensify**, then tap **Save**. | ||
|
|
||
| **Note:** When booking a trip, select **business** instead of **personal** to ensure the receipt is sent to Expensify. | ||
|
|
There was a problem hiding this comment.
Generic/non-task-based headings: ## Admin Setup (line 61) and ## Traveler Setup (line 70) are generic headings similar to the forbidden "Setup" pattern. Headings must start with an action verb or question word. Consider: ## How to set up KAYAK for Business as an admin and ## How to set up KAYAK for Business as a traveler.
| --- | ||
|
|
||
| # Build Your Own Receipt Integration | ||
|
|
There was a problem hiding this comment.
Generic heading: # Using the Integration is vague and generic. It does not include the feature name and is not task-based. Per HELP_AUTHORING_GUIDELINES.md, headings must be explicit and feature-specific. Consider (as ##): ## How to use a receipt integration with Expensify.
| --- | ||
| title: TriNet | ||
| description: Learn how to integrate TriNet with Expensify to automatically sync employees and manage approvals. | ||
| keywords: [Expensify Classic, TriNet, Zenefits, Expensify, HR integration, employee sync, approval workflow] |
There was a problem hiding this comment.
Missing metadata: The keywords array must include "New Expensify" since this article lives under new-expensify/. The required internalScope field is also missing from the YAML frontmatter.
| - **Deactivate Expensify accounts** when employees are removed from TriNet. | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
Forbidden generic heading / structural violation: # Prerequisites is a generic heading (forbidden, similar to "Requirements"). It also uses # level when only the title heading should. The file is missing a # TriNet title heading matching the YAML title. Consider demoting to ## Who can connect TriNet to Expensify. The same # issue applies to # Connect TriNet to Expensify (line 23) -- demote to ##.
| - TriNet will sync all employees to **one** Expensify workspace. If your company uses multiple workspaces, you can select which one to connect during setup. | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
Forbidden heading pattern: ## Step 1: Enable the Integration (line 25) and ## Step 2: Configure the Approval Workflow (line 33) use the forbidden "Step 1/2" pattern. Per HELP_AUTHORING_GUIDELINES.md, "Step 1"-style headings are explicitly forbidden. Instead, use numbered steps within a single ## How to connect TriNet to Expensify section, or use task-based headings like ## How to enable the TriNet integration and ## How to configure the TriNet approval workflow.
|
🚀 Deployed to staging by https://github.com/lschurr in version: 9.3.65-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.3.65-6 🚀
|
See internal discussion: https://expensify.slack.com/archives/C07HPDRELLD/p1776071018876509?thread_ts=1776059597.592969&cid=C07HPDRELLD
NOTE: @lschurr no need to go through all these articles this is a straight copy job, moving over the platform-agnostic articles from Classic over to NewDot.
Also these articles will be fine tuned later, so ignoring the bot comments on this issue.