Hourly
Transcribe new recordings in S3
Audio and video added to your bucket is transcribed, and each transcript reaches you by email when it's done.
- Runs
- Hourly
- Apps
- AWS
- AI
- Yes, uses the built-in AI allowance
- Access
- s3:ListBucket, s3:GetObject, transcribe:StartTranscriptionJob, transcribe:GetTranscriptionJob
Send this to your assistant
Create a ClickRuntime automation: every hour, start an AWS Transcribe job for new audio files in my recordings bucket and email me each transcript with a short summary once it's finished.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Sales teams, researchers and customer support leads often save call recordings and interviews to S3 because it is cheap and shared. The recordings then sit there. Nobody has the hours to listen, and the few that matter, a cancellation call or a customer's feature request, are only found if someone remembers the date. Insights stay locked inside audio, and compliance reviews that need an exact quote depend on someone replaying thirty minutes of a call.
Every hour, ClickRuntime lists new audio and video files in the bucket and starts an AWS Transcribe job for each. On later runs it checks job status and, as jobs finish, emails the transcript. If you want, ClickRuntime's built-in AI can add a short summary for each recording.
Teams who already store recordings in S3 find it the easiest way to turn them into text without moving anything.
What you get out of it
Calls become searchable evidence
With transcripts in hand, you can search for the moment a customer mentioned a competitor or asked for a refund. Decisions rely on what was said instead of what someone recalls.
Recordings stay where they already are
Files are transcribed in place in your own AWS account. You do not upload customer calls to a separate service or copy them around, which makes data handling simpler to explain.
Backlogs of old audio get cleared
Once the flow is running, every new file is handled without anyone asking. A folder of unreviewed recordings stops growing into a pile that nobody dares touch. The pile of unreviewed recordings stops growing quietly in the background.
Summaries let managers sample quickly
A short summary of each call lets a manager decide in seconds whether the full transcript needs reading. Coaching sessions can use real examples rather than theoretical advice. Coaching can use real examples from last week's calls.
Quotes for compliance are easy to find
When a regulator or a customer disputes what was agreed, an exact transcript with timestamps settles it. You avoid replaying audio and arguing about interpretation. The record is exact, which helps in any dispute.
How it works
What happens, step by step
Every hour ClickRuntime checks your S3 bucket for new audio and video files, skipping ones it has already handled.
It sends each new recording to Amazon Transcribe.
On later checks it looks for transcripts that have finished.
Each finished transcript arrives in your inbox, optionally with an AI summary of the key points.
Before it runs live
- Connect AWS
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other AWS steps into one automation
Under the hood
The code that runs this automation
import json
import boto3
from clickruntime import on_trigger, credentials, notify, state, report_fetched, ai
REGION = "us-east-1"
def aws(service):
return boto3.client(service, region_name=REGION, aws_access_key_id=credentials.secret("AWS_ACCESS_KEY_ID"),
aws_secret_access_key=credentials.secret("AWS_SECRET_ACCESS_KEY"))
BUCKET = "acme-recordings"
MEDIA = (".mp3", ".mp4", ".wav", ".m4a")
@on_trigger
def run(event):
s3, transcribe = aws("s3"), aws("transcribe")
seen, pending = set(state.get("seen") or []), state.get("pending") or []
new = [o["Key"] for o in s3.list_objects_v2(Bucket=BUCKET).get("Contents", [])
if o["Key"].lower().endswith(MEDIA) and o["Key"] not in seen]
report_fetched(len(new))
if not new and not pending:
return {"new": 0}
for key in new:
job = "rec-" + "".join(c if c.isalnum() else "-" for c in key)[-180:]
transcribe.start_transcription_job(TranscriptionJobName=job, Media={"MediaFileUri": f"s3://{BUCKET}/{key}"},
IdentifyLanguage=True, OutputBucketName=BUCKET, OutputKey=f"transcripts/{job}.json")
pending.append({"job": job, "key": key})
for p in list(pending):
status = transcribe.get_transcription_job(TranscriptionJobName=p["job"])["TranscriptionJob"]["TranscriptionJobStatus"]
if status == "COMPLETED":
text = json.load(s3.get_object(Bucket=BUCKET, Key=f"transcripts/{p['job']}.json")["Body"])["results"]["transcripts"][0]["transcript"]
summary = ai.generate(text[:20000], system="Summarise this recording in 3 bullet points.", max_output_tokens=200).text
notify.email_me(f"Transcript: {p['key']}", f"{summary}\n\n{text}")
if status in ("COMPLETED", "FAILED"):
pending.remove(p)
state.set("seen", list(seen | set(new)))
state.set("pending", pending)
return {"started": len(new), "pending": len(pending)}FAQ
Common questions
Which file types does AWS Transcribe accept?
Why does the email arrive later than the upload?
Is the AI summary required?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Read totals from receipts dropped in S3
New receipts and PDFs in your bucket have their vendor, date and total pulled out and emailed to you.
See how it worksHear about new files in an S3 folder
You get an email listing files newly added under a folder in your bucket.
See how it worksStore files sent to a link in S3
Files or file URLs posted to your link are saved in your bucket under the date, and you get a download link.
See how it worksKeep exploring
Set up “Transcribe new recordings in S3” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.