See llms.txt for all machine-readable content.

Back to Templates

Triage and chase employee ops requests from Gmail with Airtable, Discord, and DeepSeek

Ops requests arrive by email and get lost between threads, so the same laptop request is filed three times and the urgent one waits behind the office supplies. This workflow reads the ops inbox, has DeepSeek extract a summary, category and priority, checks Airtable for duplicates and logs real requests with a confirmation to the sender. It also holds unclear extractions for a human, escalates urgent work on Discord, tracks every confirmation and chases requests that pass their target time.

Last updated: November 2026.

Quick Overview

A Gmail trigger polls unread mail every minute. A Set node pulls the sender, subject and body, and an IF node rejects empty or very short messages with a Discord note and an email asking for detail. An AI agent with an Airtable search tool extracts the request and checks for an open duplicate. A Code node merges that with the email metadata and validates the category, priority and summary. Non ops mail is ignored, duplicates get a Discord notice, and unclear extractions are saved as Needs Triage with a Discord ping. Clean requests are created in Airtable with retries, routed by priority (urgent and high get an @here escalation, the rest a normal alert), and confirmed to the requester with an expected response time. The confirmation time and Gmail message id are written back to the record. Weekday mornings an SLA lane chases overdue requests, and every Monday DeepSeek writes a digest of open work for Discord and email.

How it works

  1. When Ops Request Received, Set Request Metadata and Check Request Validity read the email. Short or senderless mail goes to Notify Invalid Request on Discord and Send Invalid Request Email.
  2. AI Extract Request Details uses Lookup Request in Airtable as a tool and returns JSON. Prepare Request Details parses it.
  3. Check Extraction Quality merges the email fields back in and checks category, priority and summary.
  4. If Ops Request Valid drops non ops mail. If Duplicate Ops Request posts duplicates to Discord. Extraction Trustworthy? sends unclear requests to Hold For Manual Triage and Ask Ops To Triage on Discord.
  5. Record Request in Airtable retries three times, and its error output feeds Alert Airtable Write Failure.
  6. Route By Priority sends urgent and high requests to Escalate Urgent Request on Discord and the rest to Alert Ops Team on Discord. Both continue to Send Request Confirmation Email, which states the expected first response time.
  7. Save Confirmation To Airtable stores the confirmation time and message id on the record.
  8. Daily SLA Check pulls open requests older than a day. Build SLA Reminders applies targets of 1 day for urgent and high, 3 for medium and 5 for low, skips anything chased in the last 24 hours, then Chase Overdue Request on Discord and Mark SLA Reminder Sent run per request.
  9. Weekly Digest Scheduler summarises open requests with DeepSeek and posts them to Discord and email.

Setup

  1. Connect Gmail on the trigger and the email nodes, and replace [email protected] in the digest node.
  2. Connect your DeepSeek credential (OpenAI compatible) on both model nodes.
  3. Connect Airtable and create an Ops Requests table with Request ID, Requester Name, Requester Email, Category, Priority, Summary, Details, Status, Created At, Source, Confirmation Sent At, Confirmation Message ID and Last Reminder At.
  4. Connect Discord and pick your server and ops channel in every Discord node.
  5. Send a test email to the ops inbox and check the record, the alert and the confirmation.

Quick Answers

What happens when the AI gets the category or priority wrong?
Check Extraction Quality catches unknown values or an empty summary, and the request is saved as Needs Triage with a Discord ping instead of being routed.

How are urgent requests handled?
Route By Priority sends urgent and high requests to an @here Discord escalation, and the requester is told to expect a reply within 4 hours or 1 working day.

How do overdue requests get chased?
The SLA lane compares each open request with its priority target and posts one reminder per day until the status changes.

What if Airtable is down?
The create step retries three times, then its error output posts the request details to Discord so nobody loses it.

Additional info

Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/