Gmail
The robomotion gmail CLI connects to Gmail via the Google API for full email management. It sends, reads, replies to, and searches emails; manages labels and drafts; handles archiving, trash, and read/unread status; downloads attachments; and operates on email threads.
When to use
- Send emails with To/CC/BCC recipients, or reply to existing messages
- Search and list emails with query filters and label filtering
- Manage labels — create, list, add/remove from messages
- Create, list, send, or delete email drafts
- Download attachments and manage email threads
Prerequisites
robomotionCLI installed- Package installed:
robomotion install gmail - Gmail OAuth2 or Service Account credentials configured via Robomotion vault
IMPORTANT: Session Mode Required for Multi-Step Operations
Each CLI command runs as a separate process — connection IDs from connect do NOT persist across calls.
You MUST use --session on connect and pass --session-id to all subsequent commands.
Workflow
- Install (once):
robomotion install gmail - Connect with session:
robomotion gmail gmail_connect --session --output json # → {"outClientId":"<client-id>","session_id":"<session-id>"} - Use the returned
client-idandsession-idin all subsequent commands:robomotion gmail gmail_send_email --client-id "<client-id>" --to <email> --subject <subj> --body <body> --session-id "<session-id>" --output json - Disconnect when done:
robomotion gmail gmail_disconnect --client-id "<client-id>" --session-id "<session-id>" --output json
Always append --output json to get structured JSON results.
Commands Reference
robomotion gmail gmail_connect --session --output jsonConnects to Gmail API using OAuth2 or Service Account credentialsrobomotion gmail gmail_disconnect --client-id --session-id "<session-id>" --output jsonCloses the Gmail connection and releases resourcesrobomotion gmail gmail_send_email --client-id --to --subject --body --cc --bcc --session-id "<session-id>" --output jsonSends an email message to specified recipientsrobomotion gmail gmail_get_email --client-id --message-id --session-id "<session-id>" --output jsonRetrieves a specific email message by IDrobomotion gmail gmail_list_emails --client-id --search-query [--50] [--label-filter] --session-id "<session-id>" --output jsonLists email messages in the mailbox with optional search queryrobomotion gmail gmail_reply_email --client-id --message-id --reply-body --session-id "<session-id>" --output jsonSends a reply to an existing email messagerobomotion gmail gmail_delete_email --client-id --message-id --session-id "<session-id>" --output jsonPermanently deletes an email message. This action cannot be undone. Use Trash Email instead if you want to recover the message later.robomotion gmail gmail_trash_email --client-id --message-id --session-id "<session-id>" --output jsonMoves an email message to the trash folder. Can be recovered with Untrash Email.robomotion gmail gmail_untrash_email --client-id --message-id --session-id "<session-id>" --output jsonRemoves an email message from the trash folder and restores itrobomotion gmail gmail_mark_read --client-id --message-id --session-id "<session-id>" --output jsonMarks an email message as read by removing the UNREAD labelrobomotion gmail gmail_mark_unread --client-id --message-id --session-id "<session-id>" --output jsonMarks an email message as unread by adding the UNREAD labelrobomotion gmail gmail_add_label --client-id --message-id --label-id --session-id "<session-id>" --output jsonAdds a label to an email messagerobomotion gmail gmail_remove_label --client-id --message-id --label-id --session-id "<session-id>" --output jsonRemoves a label from an email messagerobomotion gmail gmail_archive_email --client-id --message-id --session-id "<session-id>" --output jsonArchives an email message by removing the INBOX labelrobomotion gmail gmail_create_label --client-id --label-name [--message-list-visibility] [--label-list-visibility] --session-id "<session-id>" --output jsonCreates a new label in Gmailrobomotion gmail gmail_list_labels --client-id --session-id "<session-id>" --output jsonLists all labels in the Gmail accountrobomotion gmail gmail_get_label --client-id --label-id --session-id "<session-id>" --output jsonGets details of a specific labelrobomotion gmail gmail_delete_label --client-id --label-id --session-id "<session-id>" --output jsonPermanently deletes a label. System labels cannot be deleted.robomotion gmail gmail_create_draft --client-id --to --subject --body --cc --bcc --session-id "<session-id>" --output jsonCreates a new email draftrobomotion gmail gmail_send_draft --client-id --draft-id --session-id "<session-id>" --output jsonSends an existing draft emailrobomotion gmail gmail_list_drafts --client-id [--50] --session-id "<session-id>" --output jsonLists email drafts in the mailboxrobomotion gmail gmail_delete_draft --client-id --draft-id --session-id "<session-id>" --output jsonPermanently deletes a draft emailrobomotion gmail gmail_get_thread --client-id --thread-id --session-id "<session-id>" --output jsonRetrieves all messages in an email thread (conversation)robomotion gmail gmail_list_threads --client-id --search-query [--50] --session-id "<session-id>" --output jsonLists email threads (conversations) in the mailboxrobomotion gmail gmail_download_attachment --client-id --message-id --attachment-id --save-path --session-id "<session-id>" --output jsonDownloads an email attachment and saves it to a file
Environment
- ROBOMOTION_API_TOKEN (if vault credentials are needed)