Skip to content

Souzan94/CSAT-APP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CSAT-Timer — Zendesk CSAT Window Tracker

A Zendesk App that starts a live countdown timer the moment a ticket is solved, showing agents exactly how long remains in the CSAT survey window. The timer syncs in real-time across all agents viewing the same ticket and persists across page refreshes. Supports channel-specific timer rules for social messaging integrations (WhatsApp, Instagram, Messenger, Telegram, and more).

Built as a freelance project for OmniWise.


What It Does

CSAT surveys are only sent within a limited window after a ticket is solved. Agents and managers often have no visibility into how much time is left — they just hope the customer responds in time. This app surfaces that countdown directly in the Zendesk interface:

  • Live countdown timer in the ticket sidebar — displays HH:MM:SS remaining with a progress bar
  • Persisted state — timer resumes correctly after page refresh, pulled from DynamoDB
  • Real-time sync — timer start/stop events are broadcast instantly to all agents viewing the same ticket via ZAF API notifications
  • Channel-specific rules — define different timer durations for each messaging channel (WhatsApp, Instagram, Messenger, Telegram, WeChat, Viber, and more), or one master rule that applies to all channels
  • Follow-up ticket creation — optionally auto-create a follow-up ticket when the CSAT window closes, with a custom ticket field for opt-in per ticket
  • Agent notification center — top bar panel shows timer events and follow-up ticket alerts with read/unread state

Tech Stack

Layer Technology
App Platform Zendesk App Framework (ZAF SDK v2)
Social Channels Sunshine Conversations (Sunco) API
Auth Zendesk OAuth 2.0
Frontend Vanilla JavaScript, HTML, CSS
Backend AWS API Gateway + Lambda + DynamoDB

Admin Panel Features

Accessible from the nav bar, the admin panel has three tabs:

Timers tab

  • Create, edit, and delete timer definitions per channel
  • Select master channel (e.g. WhatsApp) and sub-channel (e.g. a specific WhatsApp integration)
  • Or set one "Master Rule" that applies across all channels
  • Validates against duplicate channel rules before saving
  • Automatically creates and manages the required Zendesk webhooks and triggers

Sunco API tab

  • Connect Sunshine Conversations credentials (App ID, Key ID, Secret Key)
  • Lists all active social messaging channel integrations for selection
  • Toggle between master rule mode and per-channel mode

Settings tab

  • Enable/disable automatic follow-up ticket creation on CSAT window close
  • Select which ticket forms should include the follow-up opt-in field
  • Grant or revoke app admin access to non-Zendesk-admin agents (with search)

How the Timer Works

  1. When a ticket is solved, a Zendesk trigger fires a webhook to the backend
  2. The backend stores the timer start time, duration, and status in DynamoDB
  3. The sidebar app loads the timer state and starts a setInterval countdown
  4. A ZAF api_notification event broadcasts the start to all agents on the same ticket simultaneously
  5. If the ticket is reopened, a stop trigger fires, clears the interval, and resets the UI across all open instances
  6. On page reload, the sidebar fetches the stored start/due dates and resumes the countdown from the correct position

Project Structure

├── manifest.json              # Zendesk app config
├── assets/
│   ├── SideBar.html/sideBar.js    # Live countdown timer (per ticket)
│   ├── NavBar.html/navBar.js      # Admin panel (timers, Sunco, settings)
│   ├── top_bar.html/topBar.js     # Agent notification center
│   ├── back.html                  # Background event listener
│   └── css/                       # Styles
└── translations/en.json           # i18n strings

License

Private — built for a client.

About

Zendesk Integrated app with a live CSAT countdown timer per ticket, real-time sync across agents, channel-specific rules, and Sunshine Conversations integration

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors