Google Workspace
OpenCompany ships seven Google Workspace nodes that share a single Google sign-in: connect once and every node below authenticates through the same stored OAuth tokens. Six of them are dual-purpose — drop them on the canvas as workflow steps, or wire them to an AI Agent’s tools handle and the agent can call them directly (tool namesgoogle_gmail, google_calendar, google_drive, google_sheets, google_tasks, google_contacts).
Connect your Google account
OpenCompany does not ship a shared Google app. You create your own OAuth client in Google Cloud Console (free), then paste its Client ID and Client Secret into OpenCompany. You only do this once.1
Create a Google Cloud project
Go to console.cloud.google.com and create a new project (any name works).
2
Enable six APIs
In APIs & Services → Library, enable each of: Gmail API, Google Calendar API, Google Drive API, Google Sheets API, Google Tasks API, and People API (the People API backs the Contacts node).
3
Configure the OAuth consent screen
In APIs & Services → OAuth consent screen, choose the External user type, fill in the required app fields, and add your own Google account as a Test User. Test-user status is what lets you sign in to an unverified app.
4
Create an OAuth client ID
In APIs & Services → Credentials, create an OAuth client ID of type Web application. Add this authorized redirect URI, exactly as written:Copy the generated Client ID and Client Secret.
5
Connect OpenCompany
In OpenCompany, click the key icon to open API Credentials, select Google Workspace, paste the Client ID and Client Secret, then click Save Credentials. Click Login with Google Workspace and approve the request in your browser (clicking through the unverified-app screen).
Gmail
Send, search, and read Gmail messages. One node, three operations selected by the Operation parameter. As an AI tool it is exposed asgoogle_gmail.
Parameters
select
default:"send"
Operation to perform: send, search, or read
Search
Read
Output
{operation, messages: [...], count, query, result_size_estimate}; read returns {operation} plus the formatted message fields.
Example: Search unread billing mail
Gmail Receive
Polling trigger that fires when a new Gmail message matching your filter arrives. Gmail has no simple push channel, so this node polls at a configurable interval, diffs message IDs against a baseline, and emits the first new message it finds.Parameters
string
default:"is:unread"
Gmail search query (same syntax as the Gmail web UI)
string
default:"INBOX"
Label name to watch, or
all to disable label filtering. When set, it is prepended to the query as label:<name>.boolean
default:"false"
Remove the UNREAD label from the matched message after fetching it
number
default:"60"
Seconds between polls (clamped to 10-3600)
select
default:"owner"
Which OAuth token store to use:
owner or customer (customer_id is required in customer mode)Output
attachments array (filename, mime_type, size, attachment_id per entry) is included when the message has attachments.
Example: Watch for invoices
Calendar
Create, list, update, and delete Google Calendar events. As an AI tool it is exposed asgoogle_calendar.
Parameters
select
default:"create"
Operation to perform: create, list, update, or delete
string
default:"primary"
Target calendar (all operations)
List
Update takes
event_id (required) plus any of title, start_time, end_time, description, location as patch fields. Delete takes event_id (required) and send_updates (all or none — whether attendees get cancellation emails).
Output
{event_id, title, start, end, html_link, status}; delete returns {deleted: true, event_id}.
Example: Today’s agenda
Drive
Upload, download, list, and share Google Drive files. Uploads accept either a source URL (fetched fully into memory and re-uploaded — avoid very large files) or base64-inlined content. As an AI tool it is exposed asgoogle_drive.
Parameters
select
default:"upload"
Operation to perform: upload, download, list, or share
Download
List
Share takes
file_id (required), email (required), role (reader / writer / commenter, default reader), send_notification (default true), and an optional message.
Output
{file_id, name, mime_type, size, content_base64} (or download_url + web_link in url mode); list returns {files: [...], count, next_page_token}; share returns {permission_id, file_id, file_name, shared_with, role, web_link}.
Example: Share a report
Sheets
Read, write, and append cell values in Google Sheets. As an AI tool it is exposed asgoogle_sheets.
Parameters
select
default:"read"
Operation to perform: read, write, or append
string
required
Spreadsheet ID (the long token in the sheet’s URL)
string
default:"A1:Z1000"
required
A1 notation, e.g.
Sheet1!A1:D10. For write, a start cell like Sheet1!A1 is enough — the range expands to fit the values.
Write / Append
Output
{updated_range, updated_rows, updated_columns, updated_cells}.
Example: Append a log row
Tasks
Manage personal to-do items in Google Tasks. As an AI tool it is exposed asgoogle_tasks.
Parameters
select
default:"create"
Operation to perform: create, list, complete, update, or delete
string
default:"@default"
Which tasklist to use (all operations)
List
Complete and delete take
task_id (required). Update takes task_id (required) plus any of title, notes, due_date, status as patch fields — only non-empty fields are applied.
Output
{task_id, title, due, status, ...}; delete returns {deleted: true, task_id}.
Example: Create a task with a due date
Contacts
Create, search, and manage contacts through the Google People API. Results are flattened into a consistent shape with primary email/phone plus the full lists. As an AI tool it is exposed asgoogle_contacts.
Parameters
select
default:"create"
Operation to perform: create, list, search, get, update, or delete
List
Search takes
query (required) and page_size (default 30). Get and delete take resource_name (required, e.g. people/c12345678). Update takes resource_name (required) plus at least one of first_name, last_name, email, phone, company, job_title.
Output
Each contact is returned in a flattened shape:{contacts: [...], count, total_people, next_page_token}; search returns {contacts: [...], count}; delete returns {deleted: true, resource_name}.
Example: Find a contact
Example: Daily agenda email
A three-node workflow that mails you a summary of today’s calendar.- Calendar — Operation: list, Start Date:
today, End Date:today+1d, Order By: startTime - AI Agent — Prompt: “Summarize today’s events into a short agenda with times and titles.”
- Gmail — Operation: send, To: your own address, Subject:
Today's agenda, Body: the agent’s summary
Tips
Related
Email (IMAP/SMTP)
Provider-agnostic email nodes for non-Gmail accounts
AI Agents
Use the Google nodes as AI tools
Schedulers & Triggers
Run Google workflows on a schedule
AI Tools
More tools to combine with Workspace nodes