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 Completed state.
  • 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:

  1. Creates the RevMan project if it has not already been synced, using the location selected in the Prepare modal.
  2. Uploads the selected media.
  3. Creates the RevMan review request when review-request creation is enabled.
  4. 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.php
  • app/Livewire/ReviewManagementQueue.php
  • app/Models/Integrations/ReviewManagementSubmission.php
  • app/Services/Integrations/ReviewManagement/ReviewManagementClient.php
  • app/Services/Integrations/ReviewManagement/ReviewManagementSubmissionQueue.php
  • app/Console/Commands/Integrations/ReviewManagement/SyncProject.php
  • database/migrations/2026_05_13_000001_create_review_management_submissions_table.php
  • database/migrations/2026_05_14_000001_add_location_to_review_management_submissions_table.php
  • resources/views/livewire/review-management-queue.blade.php
  • resources/views/components/flowbite/partials/sidebar.blade.php
  • routes/web.php
  • config/services.php
  • app/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