The moment it happens
Save each order in Zoho CRM and email a confirmation
Every new order or inquiry is saved as a contact and deal in Zoho CRM, and the customer gets a confirmation email from Gmail.
- Runs
- The moment it happens
- Apps
- Gmail, Zoho CRM
- AI
- Optional
- Access
- ZohoCRM.modules.ALL; gmail.send
Send this to your assistant
Create a ClickRuntime automation: when a new order or inquiry comes in from my website, create or update the contact in Zoho CRM, add a deal, and email the customer a confirmation from Gmail.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A furniture maker takes custom orders through their website. Each one is retyped into Zoho CRM, and the confirmation email goes out whenever someone has a moment. Details get mistyped, and customers sometimes wait a day to hear the order was received.
Each order or enquiry now creates or updates the contact in Zoho, adds a deal with the order details, and sends the customer a confirmation from Gmail within seconds.
What you get out of it
The CRM is always complete
Every order is recorded, not just the ones someone had time to type in.
Customers hear back immediately
A confirmation from a real Gmail address reassures them the order arrived.
No duplicate contacts
Returning customers are matched by email and their existing record is updated.
Fewer typing mistakes
Names, amounts and products come straight from the order.
How it works
What happens, step by step
Your website sends ClickRuntime each new order or enquiry.
The customer is created in Zoho CRM, or updated if their email is already there.
A deal is added with the order details and amount.
The customer gets a confirmation email from your Gmail, and each order is handled once.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- Connect Zoho CRM
- 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 Gmail and Zoho CRM steps into one automation
Under the hood
The code that runs this automation
import base64
from email.message import EmailMessage
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_event, credentials, http, ai
ZOHO = "https://www.zohoapis.com/crm/v6"
@on_event
def handle(event):
o = event.json or {}
zh = {"Authorization": f"Zoho-oauthtoken {credentials.connection('zoho', 'work')}"}
contact = http.post(f"{ZOHO}/Contacts/upsert", headers=zh,
json={"data": [{"Last_Name": o["name"], "Email": o["email"]}], "duplicate_check_fields": ["Email"]}).json()
contact_id = contact["data"][0]["details"]["id"]
http.post(f"{ZOHO}/Deals", headers=zh, json={"data": [{"Deal_Name": f"{o['name']}: {o['item']}", "Amount": o.get("amount"),
"Stage": "New order", "Contact_Name": {"id": contact_id}}]})
line = ai.generate(f"One warm sentence thanking {o['name']} for ordering {o['item']}.", max_output_tokens=60).text.strip()
msg = EmailMessage()
msg["To"], msg["Subject"] = o["email"], f"We've received your order: {o['item']}"
msg.set_content(f"Hi {o['name']},\n\n{line}\n\nWe'll be in touch with delivery details soon.")
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(msg.as_bytes()).decode()}).execute()
return {"contact": contact_id}FAQ
Common questions
What does my website need to send?
Can the confirmation be personalised?
Which pipeline stage do new deals get?
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 follow-ups for stalled deals and new leads
Each morning, stalled deals and untouched new leads get a personal follow-up drafted in your Gmail, with a note added in Zoho.
See how it worksScore new Zoho leads and email me a briefing
Every new lead in Zoho CRM is scored, the score is saved on the lead, and you get a short briefing email on the ones worth calling.
See how it worksSpot upsell chances in support tickets
Support tickets that hint at a bigger need are flagged, logged as a note and task in Zoho CRM, and emailed to sales.
See how it worksKeep exploring
Set up “Save each order in Zoho CRM and email a confirmation” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.