Skip to main content
These tools list your email jobs, read and propose outreach settings, send one outreach draft you already wrote, and queue a checked table of your drafts. They need the permissions mail:read, mail:send and profile:write, which you grant on the Authorize access page when you connect. This page is generated from the connector’s tool catalogue. It describes 5 tools. Every tool reads or writes only your own account.

Permissions this page needs

  • mail:read: Read your outreach templates, thank-you drafts, email delivery jobs, and your outreach settings
  • mail:send: Send a thank-you email you already drafted, to the address stored on the contact linked to that meeting, when you read the exact message and approve it, and send one stored outreach draft you already wrote, and queue a checked table of your own outreach drafts
  • profile:write: Update your profile preferences, and propose booking page changes you approve
The permissions reference lists every permission you can grant.

mail.jobs.list

Your agent host shows this tool as “List email jobs”. List your email delivery jobs newest first with cursor pagination: status, purpose, subject, recipient, and the error class for failed jobs. The message body is not included. Permissions: This tool needs mail:read, which the Authorize access page describes as “Read your outreach templates, thank-you drafts, email delivery jobs, and your outreach settings”. Risk: read. This tool only reads your own data. It never changes anything and it never asks for your approval.

Input

Example call

mail.jobs.list input

Result

A result is never larger than 16,384 bytes. A result carries these top-level fields:
Top-level fields

Errors

A failed call returns one protocol error with no error code, and its text is Tool call failed. every time. This tool looks up no record by id, so it never sends a text that names a record. The error codes page gives every text a read failure can carry.

mail.drafts.send

Your agent host shows this tool as “Send a stored outreach draft”. What this changes: Send one stored outreach draft you already wrote. The subject, body, and recipient come from that draft. This tool cannot change them. Permissions: This tool needs mail:send, which the Authorize access page describes as “Send a thank-you email you already drafted, to the address stored on the contact linked to that meeting, when you read the exact message and approve it, and send one stored outreach draft you already wrote, and queue a checked table of your own outreach drafts”. Risk: consequential. This tool sends one outreach draft you already wrote, from your own Gmail, as soon as the agent calls it. It cannot change the subject, the body or the recipient. Coffee Chats does not ask you to approve first. The tool is marked as not read only, so your agent host can ask you before it calls it.

Input

Example call

mail.drafts.send input

Result

A result is never larger than 1,024 bytes. A result carries these top-level fields:
Top-level fields

Errors

A call that does not succeed carries one of these codes.

mail.outreach.get

Your agent host shows this tool as “Get outreach settings”. Read your outreach settings: tone, email length, signature, scheduling link, and follow-up rules. Signature and scheduling link are the values outreach emails actually use; the source fields say whether each was saved by you or filled in by default (derived signature, booking page link). Permissions: This tool needs mail:read, which the Authorize access page describes as “Read your outreach templates, thank-you drafts, email delivery jobs, and your outreach settings”. Risk: read. This tool only reads your own data. It never changes anything and it never asks for your approval.

Input

This tool takes no input.

Example call

mail.outreach.get input

Result

A result is never larger than 4,096 bytes. A result carries these top-level fields:
Top-level fields

Errors

A failed call returns one protocol error with no error code, and its text is Tool call failed. every time. This tool looks up no record by id, so it never sends a text that names a record. The error codes page gives every text a read failure can carry.

mail.outreach.update

Your agent host shows this tool as “Propose outreach settings change”. What this changes: Propose changes to the authenticated student’s outreach settings: preferred name, email signature, scheduling link (an empty link means the booking page is used) and email tone (professional, warm, casual). Send only the settings to change, each at most 200 characters. Nothing changes until the student approves the request in a browser. Permissions: This tool needs profile:write, which the Authorize access page describes as “Update your profile preferences, and propose booking page changes you approve”. Risk: consequential. This tool cannot change anything on its own. It proposes the change, and nothing happens until you open the Coffee Chats page it points to and approve exactly what is shown.

Input

The agent sends one object, and the table below is that object exactly as the connector publishes it. The connector accepts the object in one of these 2 forms and refuses any mixture of them. A published schema cannot state that rule, which is why the Required column reads no on every property and why each form is written out under the table. Within a form, every property the form does not name is refused.

Form 1, sending idempotencyKey

Send idempotencyKey. It is required in this form. preferredName, schedulingLink, signature and tone may be sent beside it, and nothing else may be.

Form 2, sending operationId

Send operationId. It is required in this form. No other property is accepted with it.

Example calls

Result

A result is never larger than 4,096 bytes. This tool’s result takes one of these 6 forms, and one call returns exactly one of them. The field named beside each form below says which one you are looking at. Open a form to read its top-level fields.
Top-level fields
Top-level fields
Top-level fields
Top-level fields
Top-level fields
Top-level fields

The result may carry a retry hint

A call can be accepted and still ask the agent to come back later. When that happens the result is an accepted result and not a failure, and it carries a hint beside it holding one of these codes and a delay in milliseconds. Nothing has gone wrong and nothing has been written yet.

Errors

A call that does not succeed carries one of these codes.

mail.batch.enqueue

Your agent host shows this tool as “Queue a table of outreach drafts”. What this changes: Queue a checked table of your own outreach drafts. Parse a csv or markdown table of email, subject, and body. Each row must match a contact you already have. A row is checked before a job is built. Permissions: This tool needs mail:send, which the Authorize access page describes as “Send a thank-you email you already drafted, to the address stored on the contact linked to that meeting, when you read the exact message and approve it, and send one stored outreach draft you already wrote, and queue a checked table of your own outreach drafts”. Risk: consequential. This tool queues each row of your table to send from your own Gmail as soon as the agent calls it. Every row must match a contact you already have, and a row that fails its check is not queued. Coffee Chats does not ask you to approve first. The tool is marked as not read only, so your agent host can ask you before it calls it.

Input

Example call

mail.batch.enqueue input

Result

A result is never larger than 8,192 bytes. A result carries these top-level fields:
Top-level fields

Errors

A call that does not succeed carries one of these codes.