All Docs
FeaturesDepositClearUpdated March 20, 2026

Weekly Negotiator & Property Manager Unread Message Re-notification

Weekly Negotiator & Property Manager Unread Message Re-notification

Version introduced: v0.1.388 Workflow type: Escalation Schedule: Daily at 10:00 UTC (0 10 * * *)

Overview

This workflow ensures that unread negotiation messages never go silently stale when the assigned negotiator is inactive. It complements the existing negotiation-unread-renotify workflow by adding an escalation path to branch managers when a negotiator-role agent has been offline for 48 hours and their thread has had no activity for more than 3 business days.

How It Works

The scheduled sweep runs once per day and performs the following checks in sequence:

Step 1 — Identify inactive negotiators with unread threads

The workflow queries org_members for agents with the negotiator role, then cross-references users to find those whose last login was more than 48 hours ago. From that set, it checks negotiation_threads and negotiation_messages to identify threads that have at least one unread message.

Step 2 — Measure thread silence in business days

For each qualifying thread, the workflow calculates how long the conversation has been silent by examining the most recent message timestamp in negotiation_messages. Silence is measured in business days (Monday–Friday, excluding public holidays), not calendar days.

Step 3 — Escalate to branch manager

If the silence window exceeds 3 business days, the workflow:

  1. Resolves the negotiator's branch via branch_members and branch_properties.
  2. Looks up the branch manager for that branch.
  3. Creates an escalation entry in notifications addressed to the branch manager, including the thread reference and the number of business days elapsed.

Escalation Thresholds

ConditionThreshold
Negotiator inactivityLast login > 48 hours ago
Thread silence> 3 business days without a new message

Relationship to negotiation-unread-renotify

The pre-existing negotiation-unread-renotify workflow re-notifies any authenticated org user who has unread negotiation messages. It does not check inactivity and does not escalate to managers.

This new companion sweep is narrower and more targeted:

negotiation-unread-renotifyThis workflow
Target audienceAll authenticated org usersNegotiator-role agents only
Inactivity checkNoYes (48-hour threshold)
Escalation to managerNoYes (after 3 business days)
Business-day logicNoYes

Both workflows run independently and can operate in parallel without producing duplicate notifications for the same thread.

Entities

  • negotiation_threads — Source of open negotiation threads to evaluate.
  • negotiation_messages — Used to determine the last activity timestamp and unread status per thread.
  • org_members — Filtered by negotiator role to find the target agent population.
  • branch_members — Maps negotiators to their branch for manager lookup.
  • branch_properties — Provides branch context used in escalation routing.
  • users — Queried for last-login timestamps to assess inactivity.
  • notifications — Receives the escalation records dispatched to branch managers.

Compliance Context

Under the Renters' Rights Act, timely communication during deposit negotiations is a compliance requirement. Unacknowledged messages in active negotiation threads can contribute to disputes and regulatory exposure. This workflow acts as a safety net to ensure no thread is inadvertently abandoned due to agent inactivity, surfacing the issue to branch management before it becomes a formal dispute.