Log Dropbox support calls to Zendesk with Azure Speech
Every hour on weekdays, transcribe new call recordings in your Dropbox support folder and file a clean summary, sentiment, and next steps on the right Zendesk ticket.
Build me an agent workflow that turns new support call recordings in Dropbox into logged internal notes on the right Zendesk ticket, so my support team never has to re-listen to a call to remember what was said.
Trigger: run on a cron schedule, every hour on the hour, Monday through Friday, from 8am to 6pm in the org's default time zone.
On each run, do this:
1. List the contents of a designated Dropbox folder (default path: /support-calls, but expose the path as a configurable input). Use the Dropbox List Folder operation and only consider audio files (.mp3, .wav, .m4a, .ogg, .flac). Skip subfolders unless the input says otherwise.
2. Dedupe. Keep a small persistent record (in workflow memory or a scratch note) of Dropbox file IDs and content hashes that have already been processed successfully, and skip any file whose ID or hash is already in that list. This is important because the folder will keep growing and we do not want to log the same call twice.
3. For each new audio file, use the Dropbox Download File operation to fetch the audio bytes, then send it to Azure AI Speech's Fast Transcribe Audio operation with speaker diarization enabled so the transcript separates the customer from the support agent. If a file is longer than the fast-transcribe limit (about 2 hours) or larger than 200 MB, note that in the ticket and skip transcription for that file.
4. Read the transcript and infer: the caller's name, email, and/or phone number if mentioned; the primary issue or reason for the call; the overall sentiment (positive / neutral / negative / frustrated); any commitments the agent made (callbacks, refunds, follow-up emails, ETAs); and 3 to 6 timestamped highlights that capture the key moments of the conversation.
5. Use the Zendesk Search Tickets operation to look for an existing open (or pending / on-hold) ticket that matches the caller. Try in order: matching email, then matching phone, then matching requester name. Prefer the most recently updated match. If more than one matches with similar confidence, pick the most recent and mention the ambiguity in the note.
6a. If a matching ticket is found, use the Zendesk Update Ticket operation to add an INTERNAL NOTE (not a public reply, so the customer never receives an email). The note body should be Markdown-formatted and include: a one-line summary of the call, the detected sentiment, the timestamped highlights, the agent's commitments, and 2 to 4 suggested next steps for whoever picks up the ticket. Include the Dropbox file name at the bottom for traceability.
6b. If no matching ticket is found, use the Zendesk Create Ticket operation to open a new ticket. Set the requester to the caller (creating a Zendesk user by email/phone if needed), set a concise subject like 'Support call: <topic> (<date>)', set priority based on sentiment and urgency (frustrated + commitment overdue = high; neutral informational = low), tag it with 'call-transcript' and 'auto-logged', and put the same structured summary as the first internal note so it does not get emailed out.
7. Once a file has been logged successfully, add its Dropbox file ID and content hash to the processed list so it is not picked up again on the next run. If any step fails for a specific file, do not mark it as processed. Move on to the next file so one bad recording does not stall the batch.
Guardrails: never post a public reply on a Zendesk ticket, only internal notes. Never mark tickets as solved or closed. Do not attempt to attach the raw audio to the ticket. Cap the run at a reasonable number of files per invocation (for example, 20) so a large backlog gets drained over multiple runs rather than blowing up in one.
Additional information
What does this prompt do?
- Watches a shared Dropbox folder for new support call recordings during business hours and skips anything it has already logged.
- Transcribes each call with speaker diarization so you can see what the customer said and what your agent promised.
- Finds the matching customer in Zendesk and adds an internal note with a short summary, sentiment, timestamped highlights, and suggested next steps.
- Opens a fresh Zendesk ticket for callers who do not match any existing open ticket, so nothing falls through the cracks.
What do I need to use this?
- A Dropbox account with a folder where your call recordings land.
- An Azure AI Speech account for transcribing the recordings.
- A Zendesk account where the internal notes and new tickets will be filed.
How can I customize it?
- Change the schedule (for example, every 30 minutes, or only during specific hours in your time zone).
- Point at a different Dropbox folder, or narrow to specific file types like .mp3 or .wav.
- Tweak the note format, sentiment scale, or the tags and priority applied to newly opened tickets.
Frequently asked questions
Will the customer see the summary added to their ticket?
What if the same recording gets picked up on a later run?
How does it know which ticket to update?
How long can the recordings be?
Can I use this with recordings from Aircall, RingCentral, or Twilio?
Related templates
Stop making your support team re-listen to yesterday's calls.
Connect Dropbox, Azure AI Speech, and Zendesk once, and Geni turns every new recording into a ready-to-action ticket note.