The moment it happens
Turn deal form entries into proposal Google Docs
Submit a deal form and a client proposal is written from your template Doc, saved as its own copy, and the link is posted to Slack.
- Runs
- The moment it happens
- Apps
- Google Docs, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- service account with folder; chat:write
Send this to your assistant
Create a ClickRuntime automation: when a deal form is sent to this link, copy my proposal template Doc, write the sections with AI for that client, and post the link to #sales in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small design studio sends a proposal for almost every new lead. Each one starts from the same template: client name, their goals, scope, timeline and price. Filling it in properly takes an hour, so proposals go out a day or two after the call, when the client's interest has already cooled.
With this automation the account lead fills in a short form after the call. A copy of your template is made for the client, AI writes the tailored sections from the form answers, and the link is posted to your sales channel. The proposal is ready to review while the conversation is still fresh.
What you get out of it
Proposals out the same day
A ready draft minutes after the call means the client hears back while they are still deciding. Speed often matters as much as price.
Your template, your structure
Every proposal starts from your own template Doc, so layout, terms and branding stay consistent. Only the client-specific sections change.
The team sees every proposal
Posting the link in Slack lets colleagues review, comment and catch mistakes before anything is sent. Nobody needs to ask whether a proposal went out.
Less copy and paste
Client names and details are filled in everywhere they appear. The usual errors, such as a previous client's name left in a heading, go away.
How it works
What happens, step by step
When the deal form is submitted, ClickRuntime receives the answers straight away.
It makes a copy of your proposal template Doc, named after the client.
AI writes the goals, scope and timeline sections from the form answers.
Those sections and the client details are filled into the copy, and the link is posted to your sales channel in Slack.
Before it runs live
- Connect Google Docs
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- 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
- 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 Docs 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
from clickruntime import on_event, credentials, ai, notify
TEMPLATE_ID = "your-template-doc-id"
@on_event
def handle(event):
form = event.json or {}
client = form.get("client", "New client")
creds = Credentials(credentials.connection("google", "work"))
copy = build("drive", "v3", credentials=creds, cache_discovery=False).files().copy(
fileId=TEMPLATE_ID, body={"name": f"Proposal - {client}"}).execute()
schema = {"type": "object", "properties": {k: {"type": "string"} for k in ("goals", "scope", "timeline")}, "required": ["goals", "scope", "timeline"]}
try:
sections = ai.generate(f"Deal details: {form}", system="Write proposal sections, 1-2 short paragraphs each.", json_schema=schema, max_output_tokens=1200).json
except ai.AIError:
sections = {k: form.get(k, "") for k in ("goals", "scope", "timeline")}
values = {"client": client, **sections}
reqs = [{"replaceAllText": {"containsText": {"text": "{{" + k + "}}", "matchCase": True}, "replaceText": v}} for k, v in values.items()]
build("docs", "v1", credentials=creds, cache_discovery=False).documents().batchUpdate(documentId=copy["id"], body={"requests": reqs}).execute()
notify.slack(f"📝 Proposal draft for {client}: https://docs.google.com/document/d/{copy['id']}", channel="#sales")
return {"proposal": copy["id"]}FAQ
Common questions
What does the template need?
Can I use my own form tool?
Is the proposal sent to the client automatically?
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
Draft RFP answers in a Google Doc and share them in Slack
Send an RFP questionnaire to a link and get a Google Doc with a draft answer to every question, based on your company profile, posted to #sales for review.
See how it worksTurn meeting transcripts into notes in Google Docs and Slack
When a meeting transcript is ready, notes and action items are saved to a Google Doc and the summary is posted in Slack.
See how it worksCreate a client onboarding Doc and announce it in Slack
Each new client form creates an onboarding Google Doc from your template, filled with their details, and posts the link to #clients in Slack.
See how it worksKeep exploring
Set up “Turn deal form entries into proposal Google Docs” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.