The moment it happens
Answer chat questions and take bookings into a sheet
Customers ask questions or book in your chat; questions are answered from your FAQ in Pinecone and bookings are added to your sheet.
- Runs
- The moment it happens
- Apps
- Google Sheets, Pinecone
- AI
- Yes, uses the built-in AI allowance
- Access
- Pinecone read; sheet edit
Send this to your assistant
Create a ClickRuntime automation: when a customer message arrives at this link, work out if it's a question or a booking. Answer questions from my FAQ in Pinecone; for bookings, add the name, date, time and party size to my Bookings sheet and confirm. Send the reply back to the chat.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Restaurants, studios and small venues get the same messages all day: are you open on Sunday, do you have parking, can I book for four on Friday. Answering them takes staff away from customers in front of them, and bookings typed from chat into a diary go missing.
Small hospitality and service businesses use it to answer common questions instantly and capture bookings in a sheet the whole team can see.
What you get out of it
Instant answers at any hour
Common questions are answered from your FAQ, even when you are closed.
Bookings land in one place
Each booking becomes a row in the shared sheet, with name, date, time and party size.
Fewer typing mistakes
Details go straight from the customer's message into the sheet.
Customers get a confirmation
The chat replies to confirm what was booked.
How it works
What happens, step by step
When a customer sends a message, your chat tool forwards it to your automation's link.
AI decides whether it is a question or a booking and picks out any booking details.
Questions are answered from your FAQ in Pinecone; complete bookings are added to your sheet.
The answer or booking confirmation is sent back to the chat.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- Connect Pinecone
- 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 Slack
- Combine it with other Google Sheets and Pinecone 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, http, ai
SHEET_ID, REPLY_URL = "your-spreadsheet-id", "https://chat.example.com/api/reply"
SCHEMA = {"type": "object", "properties": {k: {"type": "string"} for k in ["intent", "name", "date", "time", "party", "missing"]}}
HOST, NS = "https://kb-abc123.svc.aped-1234.pinecone.io", "faq" # your index host and namespace
def search(text, k=5):
r = http.post(f"{HOST}/records/namespaces/{NS}/search", json={"query": {"inputs": {"text": text}, "top_k": k}}, headers={
"Api-Key": credentials.secret("PINECONE_API_KEY"), "X-Pinecone-API-Version": "2025-04"}).json()
return [h["fields"] for h in r["result"]["hits"]]
@on_event
def handle(event):
body = event.json or {}
msg = str(body.get("message", ""))[:1000]
b = ai.generate(f"Is this a 'question' or a 'booking'? For a booking, extract name, date (YYYY-MM-DD), time, party size, and "
f"list any missing fields in 'missing'.\n{msg}", json_schema=SCHEMA, max_output_tokens=150).json
if b.get("intent") == "booking" and not b.get("missing"):
build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False) \
.spreadsheets().values().append(spreadsheetId=SHEET_ID, range="Bookings!A:E", valueInputOption="RAW",
body={"values": [[b["name"], b["date"], b["time"], b["party"], event.received_at[:16]]]}).execute()
reply = f"Thanks {b['name']}, you're booked for {b['party']} on {b['date']} at {b['time']}."
elif b.get("intent") == "booking":
reply = f"Happy to book that. Could you tell me your {b['missing']}?"
else:
faq = "\n".join(h["chunk_text"] for h in search(msg, 3))
reply = ai.generate(f"Answer briefly using only this FAQ, or say we'll get back to them:\n{faq}\nQ: {msg}", max_output_tokens=150).text
http.post(REPLY_URL, json={"session_id": body.get("session_id"), "text": reply})
return {"intent": b.get("intent")}FAQ
Common questions
Does it check availability?
What if details are missing?
Which chat tools work?
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
Answer chat questions from your sheet data and documents together
People ask a question in your chat and get an answer that combines the figures in your Google Sheet with the guidance in your documents.
See how it worksAnswer support requests from your knowledge base and log every ticket
Each support request gets a suggested answer from your knowledge base in Slack, and every request is logged in your sheet with its category.
See how it worksAnswer your standard questions about each new financial report in a sheet
Each quarter new financial reports are indexed in Pinecone, and the answers to your standard questions about each company are written to your sheet.
See how it worksKeep exploring
Set up “Answer chat questions and take bookings into a sheet” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.