Every 15 minutes
Get a risk review of every new contract in Slack
Each contract PDF you drop into your Drive Contracts folder gets a short list of key terms and risky clauses posted in #legal.
- Runs
- Every 15 minutes
- Apps
- Google Drive, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- Drive read; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: when a contract PDF is added to my Drive 'Contracts' folder, list the key terms and any risky clauses and post them to #legal.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small agency signs a handful of supplier and client contracts each month. They arrive as PDFs, get saved to a shared Drive folder, and are often signed before anyone has read past the first page. An automatic renewal or an uncapped liability clause only surfaces when it causes a problem.
This automation gives every new contract a first read as soon as it lands in the folder, so the person who signs it sees the payment terms, notice periods and unusual clauses in Slack before the signature goes on.
What you get out of it
Risky clauses are flagged before signing
Auto-renewals, one-sided indemnities and long notice periods are called out while there is still time to push back, not after the contract is in force.
A shared view for the whole team
Posting in #legal means sales, finance and the founder all see the same summary, and questions can be raised in the thread.
Faster review for routine contracts
Standard agreements with nothing unusual can be approved quickly, leaving legal time for the ones that need a closer look.
A record of what was flagged
The Slack history shows which terms were noticed and when, which helps when a contract is renegotiated or disputed later.
How it works
What happens, step by step
Every 15 minutes ClickRuntime checks your Drive Contracts folder for new PDF files.
It skips any contract it has already reviewed.
For each new contract it reads the text, and AI lists the key terms and any clauses that look risky.
The review is posted in your #legal Slack channel with a link to the file.
Before it runs live
- Connect Google Drive
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
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 Google Sheets
- Combine it with other Google Drive and Slack steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
import io
from pypdf import PdfReader
from clickruntime import on_trigger, credentials, state, notify, ai, http, report_fetched
FOLDER_ID = "your-contracts-folder-id"
@on_trigger
def run(event):
token = credentials.connection("google", "work")
drive = build("drive", "v3", credentials=Credentials(token), cache_discovery=False)
seen = set(state.get("seen") or [])
files = drive.files().list(q=f"'{FOLDER_ID}' in parents and mimeType='application/pdf' and trashed=false",
fields="files(id,name,webViewLink)").execute().get("files", [])
new = [f for f in files if f["id"] not in seen]
report_fetched(len(new))
if not new:
return {"new": 0}
for f in new:
pdf = http.get(f"https://www.googleapis.com/drive/v3/files/{f['id']}?alt=media",
headers={"Authorization": f"Bearer {token}"}).content
text = "\n".join(p.extract_text() or "" for p in PdfReader(io.BytesIO(pdf)).pages)[:60000]
review = ai.generate(["List the key terms and any risky clauses in this contract as short bullets.", text],
max_output_tokens=700).text
notify.slack(f"*{f['name']}*\n{review}\n{f['webViewLink']}", channel="#legal")
seen.add(f["id"])
state.set("seen", list(seen))
return {"new": len(new)}FAQ
Common questions
Does it replace a lawyer's review?
Which files does it look at?
What does it look for in a contract?
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
Screen CVs in Drive and post the shortlist to Slack
Every CV saved to your Candidates folder gets a score against the job and a short summary in your hiring channel.
See how it worksSummarise new Drive videos in Slack
Every video added to your Recordings folder gets a short written summary and link posted to your team's Slack channel.
See how it worksPost decisions and action items from meeting transcripts to Slack
When a meeting transcript is saved to your Drive folder, your team gets the decisions and action items in Slack within minutes.
See how it worksKeep exploring
Set up “Get a risk review of every new contract in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.