Skip to content

Conversation

@stephanieelliott
Copy link
Contributor

@stephanieelliott stephanieelliott commented Oct 11, 2025

Context: https://expensify.slack.com/archives/C041A90J23Z/p1759863909008829

--

@zanyrenney you can ignore all the comments -- something is up with the QA bot, discussing a fix here.

So you don't have to sort through the hundreds of comments:
Dev preview is here: https://eea440b6.helpdot.pages.dev/articles/Unlisted/Automate-User-Provisioning-in-Expensify-with-Okta-Workflows

Note that the images won't load onto the page until the article is published, so we can't preview those

All the bot comments have been addressed, here is a clean QA summary:

image

@melvin-bot
Copy link

melvin-bot bot commented Oct 11, 2025

Concierge reviewer checklist:

  • I have verified the accuracy of the article
    • The article is within a hub that makes sense, and the navigation is correct
    • All processes, screenshots, and examples align with current product behavior.
    • All links within the doc have been verified for correct destination and functionality.
  • I have verified the readability of the article
    • The article's language is clear, concise, and free of jargon.
    • The grammar, spelling, and punctuation are correct.
    • The article contains at least one image, or that an image is not necessary
  • I have verified the formatting of the article
    • The article has consistent formatting (headings, bullet points, etc.) with other HelpDot articles and that aligns with the HelpDot formatting standards.
    • The article has proper text spacing and breaks for readability.
  • I have verified the article has the appropriate tone and style
    • The article's tone is professional, friendly, and suitable for the target audience.
    • The article's tone, terminology, and voice are consistent throughout.
  • I have verified the overall quality of the article
    • The article is not missing any information, nor does it contain redundant information.
    • The article fully addresses user needs.
  • I have verified that all requested improvements have been addressed

For more detailed instructions on completing this checklist, see How do I review a HelpDot PR as a Concierge Team member?

cc @abekkala

@melvin-bot melvin-bot bot requested review from Julesssss and abekkala and removed request for a team October 11, 2025 00:51
@melvin-bot
Copy link

melvin-bot bot commented Oct 11, 2025

@Julesssss @abekkala One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@stephanieelliott stephanieelliott removed request for a team, Julesssss and abekkala October 11, 2025 00:52

---

## Bringing it all together: Example end-to-end flow
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readability violation: The heading "Bringing it all together: Example end-to-end flow" contains unnecessary filler language. Should be more direct like "Complete Okta Workflows configuration example" or "End-to-end workflow example".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

@github-actions
Copy link
Contributor

HelpDot Documentation Review

Overall Assessment

This PR introduces a comprehensive guide for integrating Okta Workflows with Expensify's Advanced Employee Updater API. The documentation is well-structured and technically detailed, providing valuable guidance for a complex enterprise integration scenario. However, there are several areas that need attention to meet HelpDot's standards for clarity, consistency, and AI readiness.

Scores Summary

  • Readability: 7/10 - Well-organized with clear sections, but some technical jargon and complex workflows could be simplified for broader accessibility
  • AI Readiness: 6/10 - Good metadata foundation, but lacks breadcrumb navigation, has vague references, and doesn't follow standard heading hierarchy
  • Style Compliance: 5/10 - Missing required FAQ structure, inconsistent with HelpDot template, and needs better alignment with Expensify documentation standards

Key Findings

Strengths:

  • Comprehensive technical coverage with realistic use cases
  • Excellent visual documentation with step-by-step screenshots
  • Clear API examples with proper JSON formatting
  • Logical flow from setup to implementation
  • Good SEO optimization with relevant keywords

Critical Issues:

  • Missing required FAQ structure using Jekyll includes for faq-begin.md and faq-end.md
  • Heading hierarchy violates HelpDot standards (uses single # at top level instead of being wrapped in platform div)
  • Technical jargon not suitable for 8th-grade reading level
  • Lacks breadcrumb navigation context
  • Inconsistent terminology usage (mixing "policies" and "Workspaces")

Technical Accuracy Concerns:

  • API endpoint URLs and request structures appear correct based on content analysis
  • Proper use of Expensify terminology ("Workspaces" vs "policies")
  • Logical workflow progression matches Okta Workflows capabilities

Recommendations

High Priority:

  1. Restructure FAQ section - Move FAQ questions under proper Jekyll includes structure
  2. Fix heading hierarchy - Ensure main title uses ## within the new-expensify div wrapper
  3. Add breadcrumb metadata - Include navigation context for better AI discoverability
  4. Simplify language - Replace technical jargon with plain language where possible

Medium Priority:

  1. Reduce vague references - Replace "this", "that", "above" with specific feature names
  2. Standardize formatting - Ensure consistent use of bold, code blocks, and lists
  3. Add missing context - Each section should be self-contained without requiring previous sections

Low Priority:

  1. Enhance visual descriptions - Improve alt text for accessibility
  2. Consider content length - Very detailed; might benefit from splitting into multiple focused articles

Files Reviewed

  • docs/articles/Unlisted/Automate-User-Provisioning-in-Expensify-with-Okta-Workflows.md - Comprehensive but needs structural and style improvements
  • Multiple image assets - Well-integrated visual documentation

Overall Recommendation: This is valuable content that addresses a real customer need, but requires significant structural modifications to meet HelpDot standards before publication. Focus first on FAQ structure, heading hierarchy, and language simplification.

Note: Detailed line-by-line feedback has been provided as inline comments.


---

## Where to find your API credentials
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague heading. Change "Where to find your API credentials" to "Where to find Expensify API credentials" to be more specific and AI-friendly. Avoid generic references like "your" when the feature name can be included.


---

## What this Okta integration does
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague heading. Change "What this Okta integration does" to "What the Okta Workflows integration does" to be more specific and include the full feature name for better AI comprehension.

}
```

We recommend using Postman or Insomnia to run this once, then store the results in an **Assign** card.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference "this" in "We recommend using Postman or Insomnia to run this once" lacks clear context. Should specify: "We recommend using Postman or Insomnia to run this API request once"

}
```

We recommend using Postman or Insomnia to run this once, then store the results in an **Assign** card.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readability violation: "We recommend using Postman or Insomnia to run this once, then store the results" - change "this" to be more specific: "We recommend using Postman or Insomnia to run this API request once, then store the results"


## Bringing it all together: Example end-to-end flow

Here’s how all the pieces work together inside Okta Workflows:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference "all the pieces" lacks specificity. Consider: "Here's how the Okta Workflows components work together:" or "Here's the complete workflow process:"


---

## Bringing it all together: Example end-to-end flow
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: This heading could be more specific. Consider "Example: Complete Okta Workflow for user provisioning" to be clearer about what this section covers.


## Common use cases for Okta + Expensify provisioning

This article reflects common customer workflows, such as:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference "This article" in context lacks clarity. Consider: "The Okta Workflows integration supports common customer workflows, such as:"


## Bringing it all together: Example end-to-end flow

Here’s how all the pieces work together inside Okta Workflows:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference - "all the pieces" is unclear. Change to "Here's how all the Okta Workflow components work together:"

- Deprovisioning users when removed from an Okta group
- Updating names and emails during employment changes

If your setup differs or you’ve found another way to use this integration, we’d love to hear from you. Reach out to Concierge with feedback or [recommend a change to this article](https://github.com/Expensify/App/edit/main/docs/articles/Unlisted/Compliance-Documentation.md) to help expand the use cases we cover.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Content structure violation: The GitHub link points to "Compliance-Documentation.md" but should point to this article's edit URL. Should be: [recommend a change to this article](https://github.com/Expensify/App/edit/main/docs/articles/Unlisted/Automate-User-Provisioning-in-Expensify-with-Okta-Workflows.md)


---

## Common use cases for Okta + Expensify provisioning
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: This heading could be more specific. Consider "Common use cases for Okta Workflows user provisioning" to better describe the content.

- Deprovisioning users when removed from an Okta group
- Updating names and emails during employment changes

If your setup differs or you’ve found another way to use this integration, we’d love to hear from you. Reach out to Concierge with feedback or [recommend a change to this article](https://github.com/Expensify/App/edit/main/docs/articles/Unlisted/Compliance-Documentation.md) to help expand the use cases we cover.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference "this integration" lacks context. Consider: "this Okta Workflows and Expensify integration" for clarity.

- Deprovisioning users when removed from an Okta group
- Updating names and emails during employment changes

If your setup differs or you’ve found another way to use this integration, we’d love to hear from you. Reach out to Concierge with feedback or [recommend a change to this article](https://github.com/Expensify/App/edit/main/docs/articles/Unlisted/Compliance-Documentation.md) to help expand the use cases we cover.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference - "this integration" could refer to multiple things mentioned. Be more specific: "this Okta Workflows integration" or "this user provisioning setup"


## What happens if I send invalid data?

The API response will include a `responseCode` and `responseMessage`. Handle this using error-checking logic in your flow.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference "this" in "Handle this using error-checking logic" lacks specificity. Should be: "Handle API errors using error-checking logic in your flow."


## What happens if I send invalid data?

The API response will include a `responseCode` and `responseMessage`. Handle this using error-checking logic in your flow.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference - "this" without clear context. Change to "Handle this API response using error-checking logic in your flow."


The API response will include a `responseCode` and `responseMessage`. Handle this using error-checking logic in your flow.

## How often can I run this flow?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference "this flow" lacks context since multiple flows are discussed. Consider: "How often can I run the provisioning workflow?" for clarity.


The API response will include a `responseCode` and `responseMessage`. Handle this using error-checking logic in your flow.

## How often can I run this flow?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Readiness violation: Vague reference - "this flow" without clear context. Change to "How often can I run this Okta workflow?" to be more specific.

@github-actions
Copy link
Contributor

HelpDot Documentation Review

Overall Assessment

PR #72368 introduces a comprehensive new technical documentation article for integrating Okta Workflows with Expensify's Advanced Employee Updater API. This is a specialized integration guide that addresses automated user provisioning workflows for enterprise customers using both platforms.

Scores Summary

  • Readability: 9/10 - Excellent clarity with logical progression and accessible language
  • AI Readiness: 8/10 - Well-structured with descriptive headings and good context
  • Style Compliance: 7/10 - Generally follows standards with some minor inconsistencies

Key Findings

Strengths:

  • Comprehensive Coverage: The article provides end-to-end implementation guidance from initial setup to error handling
  • Visual Learning Support: Extensive use of screenshots (9 images) that directly correlate with step-by-step instructions
  • Practical Code Examples: Well-formatted JSON payloads and API request examples with clear explanations
  • Logical Structure: Content flows naturally from prerequisites through implementation to troubleshooting
  • User-Focused Language: Technical concepts explained in accessible terms without oversimplification

Areas for Improvement:

  • Broken Link: Line 184 contains an incorrect GitHub edit link pointing to Compliance-Documentation.md instead of the current article
  • Heading Hierarchy: Uses both single and double hash headers appropriately, but could benefit from more consistent sub-section organization
  • Terminology: Correctly uses Workspaces formerly policies to bridge old and new terminology

Overall Recommendation: APPROVE with Minor Fix

This documentation represents high-quality technical writing that will significantly help enterprise customers implement automated user provisioning. The single broken link should be corrected before merge, but otherwise this article sets an excellent standard for integration documentation.

@zanyrenney
Copy link
Contributor

Have reviewed, looks good but now as i accepted a change, I can't merge.

@twisterdotcom twisterdotcom merged commit 5013c73 into main Oct 13, 2025
9 of 10 checks passed
@twisterdotcom twisterdotcom deleted the okta-workflows branch October 13, 2025 09:38
@melvin-bot
Copy link

melvin-bot bot commented Oct 13, 2025

@twisterdotcom looks like this was merged without a test passing. Please add a note explaining why this was done and remove the Emergency label if this is not an emergency.

@twisterdotcom
Copy link
Contributor

This is just a help article which @zanyrenney had already reviewed

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/twisterdotcom in version: 9.2.30-0 🚀

platform result
🖥 desktop 🖥 success ✅
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/mountiny in version: 9.2.30-6 🚀

platform result
🖥 desktop 🖥 success ✅
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants