The moment it happens
Hear when a Replicate job finishes or fails
As soon as a long prediction completes, you get its status and output link in Slack, with no repeat alerts.
- Runs
- The moment it happens
- Apps
- Replicate
- AI
- Not needed
- Access
- API key (to create predictions) + webhook signing secret
Send this to your assistant
Create a ClickRuntime automation: run my upscaling model on Replicate and give it a webhook link. When the prediction finishes, post the status and output link to #ml-jobs in Slack, and tell me if it failed.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Some Replicate jobs take a long time: fine-tuning a model, rendering a video, upscaling a batch of images or running a large language model over a long document. Waiting means keeping a browser tab open or polling the API in a loop, and a job that failed after ten minutes can go unnoticed for hours while you assume it is still running.
When a prediction reaches a final state, Replicate sends a webhook. ClickRuntime checks its Standard Webhooks signature to confirm it really came from Replicate, reads the status and output, and sends you a message in Slack or by email with the result and a link to the output file. It happens the moment the job ends.
Creators, researchers and developers who start long jobs and move on to other work will find it the most helpful, because waiting is the expensive part.
What you get out of it
You stop watching a progress bar
A job that takes twenty minutes does not need your attention for twenty minutes. You start it, switch to other work, and the message tells you when to come back.
Failures are discovered immediately
A failed run reported the minute it ends can be restarted with a fixed input straight away. Finding out the next morning wastes an entire working day and, for time-sensitive work, a deadline.
Outputs are one click away
The message contains the link to the finished file. You do not need to open Replicate, find the prediction in the list and copy the URL, which is slower than it sounds with many runs.
Signatures block fake notifications
Replicate signs its webhooks, and the signature is verified before anything is sent. That prevents someone who learns your webhook URL from triggering false completion messages. Only genuine Replicate events produce a message.
Teams share long-running work
Posting results in a channel lets a colleague pick up where you left off. A designer waiting for an upscaled image hears about it without asking the person who started the job.
How it works
What happens, step by step
When a Replicate job finishes, Replicate tells ClickRuntime straight away.
ClickRuntime first checks that the message really came from Replicate and rejects anything that doesn't.
If the job succeeded, it posts the job ID and a link to the output in #ml-jobs in Slack.
If the job failed or was cancelled, it posts the error to #ml-jobs and also emails you.
Before it runs live
- Connect Replicate
- Paste your automation's link into the other app's webhook settings
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
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Replicate steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, notify, log
@on_event
def handle(event):
if not event.is_verified:
log.warning("rejected delivery with a bad webhook signature")
return {"posted": False}
p = event.json or {}
output = p.get("output")
link = output[0] if isinstance(output, list) and output else output
if p.get("status") == "succeeded":
notify.slack(f"Upscale {p['id']} succeeded\n{link}", channel="#ml-jobs")
else:
notify.slack(f"Upscale {p['id']} {p.get('status')}: {p.get('error')}", channel="#ml-jobs")
notify.email_me(f"Replicate prediction {p.get('status')}", f"{p['id']}: {p.get('error')}")
return {"status": p.get("status")}FAQ
Common questions
What is a Standard Webhooks signature?
Which prediction statuses send a message?
How do I get Replicate to call the webhook?
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
Generate fresh model output every morning
Each day a new result from the model and prompt you chose lands in your inbox as a link.
See how it worksGet a daily list of failed predictions
Each morning you see which runs failed in the past day, which model they used and the error, so you can fix them before rerunning.
See how it worksPost new orders and sign-ups to Slack
When something happens in your shop, app or form, the details land in the right channel straight away.
See how it worksKeep exploring
Set up “Hear when a Replicate job finishes or fails” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.