Gmail
Sync Gmail emails into the Context File System so agents can query and analyze your email data.
| Direction | Pull (Gmail → PuppyOne) |
| Trigger | Scheduled poll |
| Auth | Google OAuth |
| Output | JSON |
Data structure
After Gmail emails are synced, they are stored in a single JSON node that contains all email data in a structured format:
{
"emails": [
{
"id": "18b2c3d4e5f6",
"subject": "Q4 Product Planning Meeting",
"from": "[email protected]",
"to": ["[email protected]"],
"date": "2026-02-20T10:30:00Z",
"snippet": "We have a meeting next Wednesday. Agenda below...",
"body": "...",
"labels": ["INBOX", "IMPORTANT"],
"thread_id": "18b2c3d4e5f6"
}
],
"total": 150,
"synced_at": "2026-02-26T08:00:00Z"
}Setup steps
Step 1: Authorize your Google account
- Open Project → Connections → Add Connection → Gmail
- Click Connect with Google and complete OAuth authorization
- Return to PuppyOne after authorization completes
Step 2: Configure sync scope
| Option | Description | Example |
|---|---|---|
| Label filter | Only sync emails with specific labels | INBOX, IMPORTANT |
| Date range | Which date to start syncing from | Last 90 days |
| Maximum count | Maximum number of emails per sync | 500 |
Step 3: Start sync
Click Start Sync. The first sync pulls historical emails, and later syncs apply incremental updates on a schedule.
Agent usage example
User: Find all emails from @acme.com from last week and summarize the main points
Agent: [calls query_data]
Found 8 emails from acme.com:
1. "Partnership Proposal" - 2026-02-20, Alice Chen
2. "Quote Confirmation" - 2026-02-21, Bob Wang
...Notes
- Gmail sync pulls only email metadata and message bodies. Attachments are not included
- HTML is automatically removed from email bodies and converted to plain text
- The default sync interval is 1 hour and can be adjusted in settings