Learn how to set up Obsidian's Gmail integration to automatically send emails and reports directly from your notes. This article covers API setup methods, OAuth, and popular no-code platforms for effective workflow automation.

With the help of one integration between Obsidian and Gmail, many of these frustrating steps and wasted time are solved. Email from Obsidian takes the hassle out of sending email. Everything you need to send email already exists in one place, including previous emails, history, links, and metadata — meaning you will also have the proper context for sending the email.
No more copying and pasting. No more formatting. Just one command and you're done. You can set Obsidian up to automatically send email whenever you add a tag — such as #client-brief, for example — saving 2–3 hours each week in newsletter and status updates for small business owners and freelancers; as well as automating weekly report generation for teams working from Obsidian dashboards.
When amending your connector via the Gmail API, you will need to highlight the text and, either call a plugin command or a webhook, and, in return, an email will automatically be sent to the recipient defined in the metadata of the note you hold. This completes one action rather than six in approximately ten seconds.
Additional benefits include:

To date, March 2026, there is no official Obsidian plugin available that directly integrates with the Gmail API for sending emails. There are, however, several alternatives:
fetch() function. This requires programming skills and regular manual updating of the OAuth token.You understand that paying for a subscription and/or coding is less than optimal, as there currently are no-code solutions for generating emails with AI agents among the existing official plugins.
The Gmail API is Google's RESTful interface that allows you to programmatically send, read and manage emails. Key methods include:
users.messages.send - send emailusers.messages.list - retrieve a list of emails for logging and other purposesusers.drafts.create - create drafts of any emailAdvantages to using the Gmail API over classic SMTP are:
Although it can be complicated to set up OAuth, it offers a much greater level of security by providing a temporary access token rather than a password. The process is as follows:
https://www.googleapis.com/auth/gmail.send) in your consent screen.client_id and client_secret.authorization_code, which can be exchanged for an access_token and refresh_token.Store tokens securely - either in a no-code platform's secret key feature or in an encrypted file.
Important security recommendations:
client_secret in a public space.gmail.send permission requires access to the sender's whole account).Setting up email automation from Obsidian will be demonstrated using the ASCN.AI platform as a no-code solution.
Step 1. Create your setup within Obsidian.
email-template.md with the following
---
recipient: {{recipient_email}}
subject: {{email_subject}}
---
{{email_body}}
Step 2. Create your workflow within ASCN.AI
https://api.ascn.ai/webhook/abc123.URL: https://gmail.googleapis.com/gmail/v1/users/me/messages/send
Headers: Authorization: Bearer {{$secrets.gmail_access_token}}
Body (JSON):
{
"raw": "{{base64_encoded_email}}"
}
Optionally, you can add an AI-Agent node to build the email texts from the user language. Save and activate your workflow.
Step 3. Email Message and How to Send it with the Gmail API Using Obsidian
<%*
const recipient = tp.frontmatter.recipient;
const subject = tp.frontmatter.subject;
const body = tp.file.content;
const webhookUrl = 'https://api.ascn.ai/webhook/abc123';
const payload = {
to: recipient,
subject: subject,
body: body
};
fetch(webhookUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
new Notice('Email sent!');
%>
The code above takes advantage of the Gmail API to send an email from a note in Obsidian that contains the recipient, subject, and body in the front matter of the note.
Template 1 - Weekly Report
---
recipient: ivan.petrov@example.com
subject: Project X Report — week {{date:YYYY-[W]WW}}
---
Hi Ivan! Achievements for the past week:
Completed development of the authorization module;
Conducted 3 scheduled team meetings;
Next sprint: payment system integration.
Questions for discussion:
Is a demo required by the 15th?
Clarify requirements for the admin panel design.
Looking forward to your feedback.
The email will be sent automatically upon saving the note - that’s simple!
Template 2 - Auto Send on Status Change
Add a File Watcher trigger to the workflow using either the local agent or the Obsidian Sync API. Whenever a change is made to a note that has the #status-update tag, the notify field from the front matter will be used to send an email notification to users. This will save both the sender and recipient the time involved with manually sending these notifications.
| Situation | What you will see | How to fix this issue |
|---|---|---|
| OAuth expired token | 401 Unauthorized error from API. |
Verify the access_token TTL, and if it’s expired, use refresh_token to get a new access_token. ASCN.AI will handle giving you an updated access_token. If the refresh_token is invalidated, repeat authorization. |
| Email encoding error | Invalid base64 string error in Gmail API |
The email needs to follow the format standards of RFC 2822 and be base64 encoded using standard libraries such as: btoa() in JavaScript or base64.b64encode in Python. |
| Obsidian does not detect change | File watcher trigger does not run | Obsidian Sync has a delay of approximately 30 seconds. You can trigger the webhook manually using Templater. |
Zapier:
Pros: Fast and Easy to Use. Cons: Free Plan is limited to 100 actions per month, paid plans start at $19.99/month. This Zap does not provide any built-in AI assistants.
IFTTT:
#send-email tag. Workflow reads the tag, extracts the fields and automatically sends an email based on the information from those fields.Obsidian has grown beyond a simple information repository into a powerful platform for team collaboration and communication.
gmail.send.Utilizing 2FA makes you a lot less vulnerable if a breach happens.
refresh_token should be automatically updated.your.nick+test@gmail.com).This can be accomplished by calling an external webhook via Markdown, but it will use a specific URI obsidian://open?vault=... or something similar to your own URI handler. This is a little more inconvenient than having a plugin.
You can use the Gmail API with a free Gmail account (limited to 500 emails sent daily) as long as you do not require exception (higher than normal) limits in conjunction with Gmail Workspace.
The Gmail API uses MIME multipart to send attachments. To include an attachment within an email, the application will base64 encode the file and create the MIME message and then send the message/attachment to the original email. The actual encoding will require expertise.
Yes, you can periodically use the users.messages.list method to pull the subject and body of emails and create notes from them.
Google may block your account for any suspicious activity; therefore, you should always have an active verified phone number, have a recovery email address on file, and never send more than 100 emails in a 60 minute period.
ASCN.AI has its own unique, ready-made agents that can be used to personalize emails by generating AIs that will create text or analyze information for you. On the other hand, n8n and Make both require further configuration to set up the AI solutions via API.
Integrating Obsidian and Gmail is a quick and easy way to convert your database of knowledge into an operational library of knowledge in email. Through the automation of routine work processes, you will now be able to accomplish your work more efficiently and effectively.
