Big sprint. We shipped a full workflow automation system, added Twilio and SMTP integrations for real messaging, and made a bunch of improvements to the catalog and search.
Workflow Automation
This one's been in the works for a while. We built a complete workflow automation system that lets you define multi-step processes and have them execute automatically as cases progress.
The core idea: you define a workflow with steps, transitions between steps, and actions that fire when entering or exiting steps. Transitions can be manual (user clicks a button) or automatic (triggered when certain conditions are met on the case).
What you can do with it:
- Define custom workflows with as many steps as you need
- Set up triggers to start workflows automatically (e.g., when a case is created, when a field changes)
- Configure actions like sending emails, SMS messages, in-app notifications, creating tasks, or firing webhooks
- Chain workflows together using the WorkflowComplete trigger to start another workflow when one finishes
- Run multiple workflows on the same case simultaneously
- Use conditional transitions that only advance when specific criteria are met
- Admin intervention controls - pause, resume, cancel, or manually override workflow steps when needed
- Detailed execution history - view timeline of all workflow events and action results
We built a visual wizard for creating workflows from templates, plus a full editor for fine-tuning. There's also a flow diagram view so you can see the whole process at a glance.
Under the Hood
The workflow engine runs as a background service that periodically evaluates active workflows:
AutoTransitionWorkerchecks conditions and advances workflows automaticallyTriggerMonitoringServicelistens for entity changes and starts workflows when triggers matchActionExecutionWorkerprocesses queued actions (emails, SMS, webhooks, etc.)- SignalR keeps the UI in sync with real-time updates
Twilio SMS & Custom SMTP
Workflow actions for "Send Email" and "Send SMS" are great, but they don't do much if you can't actually configure where those messages go. This sprint we built out the integration settings.
Twilio SMS
New settings page under Settings > Integrations > Twilio where you can configure your Account SID, Auth Token, and phone number. We added a "Send Test" button so you can verify it works before relying on it in production.
Email/SMTP
Same idea for email: Settings > Integrations > Email lets you configure custom SMTP settings (server, port, credentials, SSL/TLS). Test email functionality included.
Catalog & Ordering
A bunch of UX improvements this sprint:
- Showroom shortcut - Quick access button in the Catalog toolbar
- Tile view default - After selecting attributes, the view now defaults to tiles instead of list
- Bigger prices - Retail price font size increased in thumbnails (users were squinting)
- Jewelry filters - Attribute filters now work for the Jewelry category in Traditional Catalog
- Order Source tracking - New feature to track where orders originate from
People Search
The global search bar now includes people, not just cases. Start typing a name and you'll see matching contacts across all your cases. No more hunting through individual cases to find someone's contact info.
QuickBooks Goes Live
Our QuickBooks integration has been running in sandbox mode while we worked out the kinks. This sprint we flipped the switch to production. Financial data now syncs with your real QuickBooks account.
AI-Powered Code Review
We built a full automated code review system that runs as an Azure Function. When a PR gets created or updated, it parses the diff and sends it to an LLM for analysis. The AI reviews the changes and posts comments directly on the PR with line-specific feedback.
The system focuses on four key areas: security vulnerabilities (SQL injection, XSS, auth bypasses), performance concerns (N+1 queries, missing async/await), code quality (null refs, exception handling), and architectural issues (SOLID violations, layer coupling). It categorizes each issue by severity and provides actionable suggestions.
Technical Details
- Multi-provider support - Claude, Azure OpenAI, OpenAI, and Gemini (configurable)
- Comment reconciliation - Updates or removes old AI comments when code changes
- Azure Managed Identity - Secure auth without PAT tokens
- Smart filtering - Only reviews added/modified lines, ignores formatting
It's not a replacement for human review, but it's a great first pass. Catches the mechanical stuff so we can focus on architecture and business logic during code review.
Bug Fixes
We squashed a lot of bugs this sprint:
- Fixed memory leak in Biography.razor EditContext event handler
- Fixed location switching for non-admin users
- Fixed task assignment not updating AssignedToResourceId
- Allow subsequent CareAssist AI updates in Biography page
- Hide Edit/Delete buttons for users without ManageWorkflow permission
- Changed engraving badge color to green (was hard to see)
- Added disclaimer for legacy cases in Family Connections
- Fixed workflow diagram view JS error causing page freeze
- Fixed workflow action/step deletion when workflow has instances
- Fixed infinite loading when workflow definition fails to load
- Fixed duplicate dates showing in workflow instances grid filter
- Fixed invalid email/phone placeholders in workflow action dropdowns
- Fixed conditional transition rule evaluation logic
- Fixed workflow step text overflow in narrow containers
What's Next?
Sprint 74 is already underway. We're continuing to polish things up, working on some reporting improvements, and tackling a few performance optimizations.
As always, if you run into issues or have feature requests, let us know.
— The Solution Center Dev Team