Ticket Crons
Automated jobs that keep the ticket system healthy by sending reminders, closing stale tickets, and collecting customer feedback.
What These Crons Do
The platform runs three automated jobs that manage ticket lifecycle without manual intervention:
| Job | Purpose | Frequency |
|---|---|---|
| Follow-Up & Incomplete Reminders | Reminds clients to complete their tickets and alerts the CS team about tickets needing attention | Periodic |
| Autoclose on Delivery | Closes tickets automatically when the associated shipment is delivered | Periodic |
| Close Incomplete Claims | Closes claim tickets that the client never finished after 10 days | Periodic |
How Each Job Works
1. Follow-Up & Incomplete Reminders
This job looks for two types of tickets:
Incomplete tickets — The client started a ticket but didn't finish it. The system:
- Sends the client a reminder email with a link to complete the ticket
- Shows a platform notification in the client's dashboard
- Adds an automatic comment on the ticket explaining what's pending
- Sends a WhatsApp message to the client
Follow-up tickets — A ticket where the client is waiting for a response from the support team for more than 24 hours. The system:
- Sends a Slack alert to the
#alert-cs-ticketschannel with ticket details, company name, type, and the client's last message - This helps the CS team identify tickets that need urgent attention
2. Autoclose on Delivery
When a shipment is delivered, certain ticket types become irrelevant (e.g., a "delay" complaint is resolved by delivery). This job:
- Finds tickets of types: Delay, Redirection, Shipment Created Without Changes, and Delivery Attempt
- Checks if the associated shipment has been delivered
- If delivered: marks the ticket as Accepted and adds a comment
- Sends a CSAT survey (Customer Satisfaction) to the client via email, WhatsApp, and an in-platform notification
3. Close Incomplete Claims
Claim tickets (Lost, Theft, Damaged, Overweight, Irregular Package) that remain incomplete for more than 10 days are automatically closed. This job:
- Finds claim tickets that have been incomplete for 10+ days
- Changes their status to Declined
- Adds a personalized comment explaining the closure (varies by ticket type)
- Sends a CSAT survey to the client
India Exclusion
Tickets from India-based companies are excluded from the incomplete auto-close and CSAT surveys, as India operations have a separate process.
CSAT Surveys
After a ticket is closed (either by autoclose or auto-decline), the client receives a satisfaction survey through three channels:
| Channel | What the Client Sees |
|---|---|
| In-platform | A rating card appears in the ticket view with shipment details (if applicable) |
| A personalized email with a greeting, explanation, and a button to rate the experience | |
A message via the cs_csat template with the ticket ID and type |
Personalized Messages
The automatic comments left on tickets are personalized by ticket type and translated to the client's language. For example:
- A "Lost" ticket gets a message specific to lost package claims
- A "Damaged" ticket gets a message specific to damage claims
- Each message includes the client's name
If the ticket type doesn't have a specific message, a generic message is used.
FAQ
What happens if a notification fails?
Each notification (email, WhatsApp, platform, Slack) is sent independently. If one fails, the others still go through. Failures are logged to the monitoring system (Datadog) for the engineering team to investigate.
Can these crons be triggered manually?
Yes. Each cron has an HTTP endpoint that can be called manually with the appropriate token_cron authentication. This is useful for testing or re-running after an incident.
Why are incomplete tickets closed after 10 days?
This is a business rule to prevent claim tickets from remaining open indefinitely when the client never completes them. The 10-day window gives clients enough time to provide the required information.
Why are some ticket types excluded from autoclose?
Only ticket types directly related to shipment delivery are auto-closed (Delay, Redirection, etc.). Claim types (Lost, Damaged, etc.) require explicit resolution because they may involve refunds or investigations.
