Skip to content

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.

Paste it into your assistant. It tells you what it will send or change before it runs live.

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

  1. When the deal form is submitted, ClickRuntime receives the answers straight away.

  2. It makes a copy of your proposal template Doc, named after the client.

  3. AI writes the goals, scope and timeline sections from the form answers.

  4. 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

RunsThe moment it happens
Turn deal form entries into proposal Google Docsjust nowSucceeded
Slack · #sales📝 Proposal draft for Northwind Coffee: https://docs.google.com/document/d/1AbC...

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
proposals_generated_as_google_docs.pyexample
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?
Placeholders in double braces, such as {{client}}, {{goals}}, {{scope}} and {{timeline}}. Each one is replaced in the client's copy.
Can I use my own form tool?
Yes, any form tool that can send its answers to a web address works. The field names just need to match the placeholders.
Is the proposal sent to the client automatically?
No. It is saved as a draft Doc and posted to Slack so someone can check it before it goes out.
What permissions does it need?
service account with folder; chat:write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

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.