Skip to main content

Knowledge > Runbooks > Voice Ops > Handle Missed Calls and Follow-Ups

Handle Missed Calls and Follow-Ups

Review missed call notifications and ensure appropriate follow-up actions are taken for calls where the agent could not complete the caller's need.

Prerequisites

  • Supabase MCP or direct DB access
  • Church admin contact information (from premium_churches)

Steps

  1. Identify calls with no-answer or incomplete outcomes for the relevant time period:

    SELECT
    cl.id,
    cl.church_id,
    c.name AS church_name,
    cl.created_at,
    cl.ended_at,
    cl.call_outcome,
    cl.duration_seconds,
    cl.caller_number
    FROM voice_call_logs cl
    JOIN churches c ON c.id = cl.church_id
    WHERE cl.created_at >= now() - interval '24 hours'
    AND (cl.call_outcome IN ('no_answer', 'abandoned', 'incomplete', 'error')
    OR cl.duration_seconds < 30)
    ORDER BY cl.created_at DESC;
  2. Check for callback requests submitted during these calls:

    SELECT
    cr.id,
    cr.church_id,
    cr.caller_name,
    cr.caller_phone,
    cr.reason,
    cr.status,
    cr.created_at
    FROM voice_callback_requests cr
    WHERE cr.created_at >= now() - interval '24 hours'
    AND cr.status = 'pending'
    ORDER BY cr.created_at DESC;
  3. Review each pending callback request:

    • reason field indicates what the caller needed (appointment, information, pastoral care)
    • Urgent or pastoral-care requests should be escalated to the church pastor immediately
  4. Notify the church admin of pending callbacks they need to action:

    -- Get church admin contact info
    SELECT pc.church_id, pc.admin_email, c.name
    FROM premium_churches pc
    JOIN churches c ON c.id = pc.church_id
    WHERE pc.church_id = '[uuid]';

    Send an email summary to admin_email listing pending callback requests, or use the notification system if configured.

  5. Update callback request status once the church has been notified:

    UPDATE voice_callback_requests
    SET status = 'notified', updated_at = now()
    WHERE id = '[callback-request-uuid]';
  6. Check for any visitor contacts captured during short or incomplete calls:

    SELECT caller_name, caller_email, caller_phone, visit_interest, created_at
    FROM voice_visitor_contacts
    WHERE created_at >= now() - interval '24 hours'
    AND church_id = '[uuid]'
    ORDER BY created_at DESC;
  7. For calls that ended due to agent error (call_outcome = 'error' or error_message IS NOT NULL):

Verification

  • All pending callback requests have been reviewed.
  • Church admins notified of any action items.
  • voice_callback_requests.status updated from pending to notified or actioned.

See Also