2026-05-13 Review Management Queue
Documented the RevMan integration update that queues completed projects for review preparation before sending.
2026-05-13 Review Management Queue
This change updates the RevMan integration so completed projects are prepared for review outreach by staff before anything is sent to the review management platform.
Summary
- Added a Review Management queue for projects that enter the
Completedstate. - Replaced automatic sending on completion with a staff review step.
- Added controls for staff to choose a RevMan location, write a basic project description, select media, send the project, or ignore the customer.
- Added the Review Queue to the main sidebar navigation.
- Kept a manual sync command for forcing a project to sync regardless of state.
- Removed the legacy RWL artisan command because that service is no longer used.
Behavior Changes
Completed projects
When a project enters the Completed state, Tempr now creates or reuses a pending Review Management submission instead of immediately calling the external API.
This allows operations to decide whether the customer is a good candidate for review outreach before the project is sent.
Review Management queue
Staff can use the new queue at:
/reviews/queue
The legacy /review-management-queue URL redirects to /reviews/queue.
From the queue, staff can:
- review completed projects waiting for RevMan submission
- choose the RevMan location for the submission in the Prepare modal
- add or revise the description sent with the project
- select which project media should be uploaded
- send the project to RevMan
- ignore customers who should not receive review outreach
Sending to RevMan
The RevMan API call now happens when a staff member sends a queued submission, or when the manual sync command is run.
When a queued submission is sent, Tempr:
- Creates the RevMan project if it has not already been synced, using the location selected in the Prepare modal.
- Uploads the selected media.
- Creates the RevMan review request when review-request creation is enabled.
- Marks the queue item as sent, or failed if the integration call errors.
Manual sync command
The manual sync command remains available:
php artisan review-management:sync-project {projectId} --location-id=locn_...
This command syncs the project regardless of project state and is intended for operational recovery or one-off corrections. The --location-id option is required when creating a new RevMan project; already-synced projects can be resent without it.
Configuration
The integration uses the Review Management service configuration under services.review_management, including:
- API root URL
- API token
- default customer type
- optional RevMan tag IDs
- locations endpoint for loading Prepare modal options
- review-request behavior
- HTTP timeout and retry settings
RevMan location IDs are selected per queued submission in the Prepare modal. REVIEW_MANAGEMENT_LOCATION_ID is no longer required.
The configured server root for this integration is:
https://reviews.shadesoftx.com
Files And Areas Updated
app/Listeners/Integrations/ReviewManagement/QueueCompletedProjectForReviewManagement.phpapp/Livewire/ReviewManagementQueue.phpapp/Models/Integrations/ReviewManagementSubmission.phpapp/Services/Integrations/ReviewManagement/ReviewManagementClient.phpapp/Services/Integrations/ReviewManagement/ReviewManagementSubmissionQueue.phpapp/Console/Commands/Integrations/ReviewManagement/SyncProject.phpdatabase/migrations/2026_05_13_000001_create_review_management_submissions_table.phpdatabase/migrations/2026_05_14_000001_add_location_to_review_management_submissions_table.phpresources/views/livewire/review-management-queue.blade.phpresources/views/components/flowbite/partials/sidebar.blade.phproutes/web.phpconfig/services.phpapp/Console/Commands/ForceSyncToRWL.php
Verification
Covered by targeted feature tests for:
- queueing completed projects without sending HTTP requests
- loading RevMan locations from the API
- sending a prepared submission to RevMan
- requiring a location selection before creating a new RevMan project
- ignoring non-completed project transitions
- skipping already-synced projects
- manually syncing a project regardless of state