The moment it happens
Create a proposal from your template
Sending client details to a link creates a filled-in proposal or contract Doc.
- Runs
- The moment it happens
- Apps
- Google Docs
- AI
- Not needed
- Access
- read+write (template and folder shared with the service account)
Send this to your assistant
Create a ClickRuntime automation: give me a link. When it gets a name, company and price, copy my Proposal template, replace {{name}}, {{company}} and {{price}}, and send me the Doc link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A design studio sends a proposal to every new client, and every proposal starts as a copy of the same Google Doc. Someone duplicates it, finds each placeholder, retypes the client's name, company, scope and fee, and misses one. Last month a proposal went out with the previous client's name in the footer. Each mistake is embarrassing, and each copy takes ten minutes that adds up across every new lead.
When a form or CRM posts the client's details to a ClickRuntime trigger link, it copies your template Doc and replaces each placeholder, such as {{client}} or {{fee}}, using a replace-all text request. It returns the link to the new Doc and posts a note in Slack so the team knows it is ready.
Agencies, law firms and recruiters use it for proposals, contracts, offer letters and onboarding packs.
What you get out of it
Wrong-name mistakes stop
Every placeholder is replaced from the submitted data, so the client's name cannot be left over from an earlier copy. A professional first impression survives, and nobody has to proofread for the old company's name.
Proposals go out the same day
A new lead can have a tailored Doc minutes after submitting a form. Speed matters in competitive bids, where the first credible proposal often shapes what the buyer expects from the rest.
The template stays in one place
Improving the wording once improves every future proposal, because every Doc starts from the same template. Nobody has a stale personal copy with last year's terms in it. Consistency across clients also makes your firm look more organized.
Sales time moves to selling
Ten minutes of find-and-replace per lead disappears. For a studio that sends thirty proposals a month, that is five hours returned to conversations with prospects. A Slack note with the link means the account owner knows the Doc exists and can review it, so nothing waits in a folder unnoticed because its creator forgot to say so, and the proposal never goes unreviewed.
The team is told automatically
A Slack note with the link means the account owner knows the Doc exists and can review it. Nothing waits in a folder unnoticed because the person who made it forgot to say so.
How it works
What happens, step by step
When a deal is won or a form is submitted, ClickRuntime receives the details straight away.
It copies your proposal template in Google Docs and names it after the client.
Every placeholder, such as the company name and price, is replaced with the real details.
You get an email with a link to the finished proposal.
Before it runs live
- Connect Google Docs
- 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 Google Docs steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_event, credentials, notify
TEMPLATE_ID = "proposal-template-doc-id"
@on_event
def handle(event):
data = event.json or {}
creds = Credentials(credentials.connection("google", "work"))
drive = build("drive", "v3", credentials=creds, cache_discovery=False)
docs = build("docs", "v1", credentials=creds, cache_discovery=False)
copy = drive.files().copy(fileId=TEMPLATE_ID, body={"name": f"Proposal – {data['company']}"}).execute()
docs.documents().batchUpdate(documentId=copy["id"], body={"requests": [
{"replaceAllText": {"containsText": {"text": "{{" + k + "}}", "matchCase": True}, "replaceText": str(data[k])}}
for k in ("name", "company", "price")]}).execute()
link = f"https://docs.google.com/document/d/{copy['id']}/edit"
notify.email_me(f"Proposal for {data['company']}", link)
return {"doc": link}FAQ
Common questions
How do placeholders work in the template?
What happens if a field is missing from the form?
Can the new Doc be saved to a client-specific folder?
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
Add entries to a work log Doc
Anything you send to a link is added with a timestamp to the end of your log Doc.
See how it worksGet a first draft as a Google Doc from a brief
Send a topic or brief and get a structured draft saved as a new Doc in your folder.
See how it worksTurn a video into a summary Doc
Send a video link and get a summary and social posts in a Google Doc.
See how it worksKeep exploring
Set up “Create a proposal from your template” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.