Sales engagement tools track activity and try to amplify it. The amplification only works if the activity data is real: actual meetings, actual email, actual follow-throughs, not what reps remembered to log at the end of the day. The Nylas v3 APIs feed that data in directly from the rep’s own mailbox and calendar, across six email providers behind one schema, so the platform writes a true record instead of a self-reported one. AI agents built on top then read that record to surface patterns a manually maintained CRM never captures.
The email, calendar, contacts, and Notetaker primitives map onto a standard outbound motion: send and schedule the touch, book the meeting, capture what was said, then log it back. Each section pairs one of those jobs with the products that cover it and a short nylas CLI example, and each linked recipe carries the full walkthrough.
The core design choice across every workflow here is where the data originates. A sales engagement layer that owns its own send pipeline and its own calendar ends up maintaining a parallel copy of reality that drifts from the rep’s actual inbox. The approach on this page does the opposite: it reads and writes through the rep’s connected grant, so the system of record is the mailbox and calendar the rep already lives in. That keeps deliverability, threading, and meeting state correct without a sync job trying to reconcile two sources after the fact.
Build with Nylas
Section titled “Build with Nylas”Direct integration matters in sales engagement because a rep’s book spans whoever happened to connect their mailbox, and that’s rarely one provider. The API covers 6 providers (Google, Microsoft 365, Yahoo, iCloud, IMAP, and Exchange/EWS) behind a single schema, so one integration reaches every rep’s inbox and calendar without per-provider branching, and the same send and read calls work whether a prospect’s account is on Google or Exchange. Each tutorial below combines two or three products, so start from the workflow you need rather than a single endpoint.
| Tutorial | Products | What you’ll build |
|---|---|---|
| Automate a sales pipeline | Email, Calendar, Contacts | A pipeline that tracks prospect communication, schedules meetings, and logs activity |
| Automate meeting follow-up email | Notetaker, Email, Calendar | A system that sends personalized follow-ups after meetings with notes and action items |
| Automatically log meeting notes to your CRM | Notetaker, Webhooks | Push meeting transcripts and summaries into CRM entries after every call |
| Sync email contacts to a CRM | Email, Contacts | Pull new senders, enrich with signatures, push to your CRM on a schedule |
| Automate customer onboarding | Email, Calendar, Scheduler | Welcome sequences, kickoff call scheduling, engagement tracking |
| CLI mail merge | Personalized batch sends with per-recipient timezone scheduling |
Sending and scheduling outbound email at scale
Section titled “Sending and scheduling outbound email at scale”Outbound sales runs on email volume, but volume without timing wastes it. The send endpoint, POST /v3/grants/{grant_id}/messages/send, posts a message straight from the rep’s connected mailbox, so it lands with their real address, threading, and signature rather than a no-reply relay. To hold a send until the prospect’s morning, post to POST /v3/grants/{grant_id}/messages/schedules instead. The same 6 providers (Google, Microsoft 365, Yahoo, iCloud, IMAP, and Exchange/EWS) accept both calls through one unified schema, so a single integration covers your whole book of accounts.
The decision that matters here is identity. Sending from the rep’s actual grant keeps replies in the right thread and protects deliverability, because the message inherits the mailbox’s established sending reputation. A separate transactional pipeline would split that reputation and break threading. For a quick test from the terminal, one command sends a message:
nylas email send --to [email protected] --subject "Following up on our call" --body "Hi Dana, sharing the deck we discussed."Templates keep the copy consistent without hardcoding it: pass --template-id and --template-data to fill per-recipient fields, and --signature-id or --sign to attach the rep’s signature. To check what’s already queued for later delivery, list the scheduled sends:
nylas email scheduled listWhen a rep needs a first draft fast, smart compose generates one from a prompt. The CLI wraps POST /v3/grants/{grant_id}/messages/smart-compose, and you edit the output before it goes out:
nylas email smart-compose --prompt "Short re-engagement email to a prospect who went quiet after a demo"For the full mail-merge pattern, including per-recipient timezone scheduling across a list, see the CLI mail merge recipe and the Send email reference.
Booking meetings into the pipeline
Section titled “Booking meetings into the pipeline”A reply is only progress once it becomes a meeting, so the gap between “interested” and “on the calendar” is where deals stall. The nylas calendar find-time command turns that gap into one call: it reads the participants’ calendars and returns ranked slots you can offer immediately. It scores each candidate slot on a 100-point model, working hours weighted 40, time quality 25, cultural norms 15, weekday 10, and holiday avoidance 10, then defaults to a 1 hour meeting searched over the next 7 days.
The provider coverage shapes what you can promise. Multi-attendee availability through POST /v3/calendars/availability spans four providers (Google, Microsoft, iCloud, and Exchange), and one-person Free/Busy through POST /v3/grants/{grant_id}/calendars/free-busy covers the same set except iCloud. Standard IMAP accounts have no calendar, so plan to fall back to a manual time offer for those reps. Once a slot is chosen, create the event from the terminal or wire up the find meeting times tutorial for the full flow:
nylas calendar events create --title "Acme x YourCo intro" --start "2026-07-01T16:00:00Z" --end "2026-07-01T17:00:00Z"If you’d rather hand prospects a self-serve booking page than trade times by email, the Scheduler overview covers embeddable pages. Both paths write to the same calendar, so the meeting shows up as real pipeline activity either way.
When a prospect proposes their own time, the find-time ranking still earns its place. Rather than accepting the first slot offered, you can score it against the rep’s working hours and the cultural-norm weighting to catch a 7 p.m. call in a timezone the rep wasn’t thinking about. The 100-point model is a decision aid, not a hard gate, so your booking logic stays in control of which slots it surfaces and which it quietly drops.
Following up automatically after calls
Section titled “Following up automatically after calls”The follow-up email is where most of a call’s value leaks out, because reps write notes from memory hours later. Notetaker closes that gap by recording and transcribing the meeting itself. Invite the bot with POST /v3/grants/{grant_id}/notetakers, and after the meeting ends, pull the recording and transcript URLs from GET /v3/grants/{grant_id}/notetakers/{notetaker_id}/media. The media endpoint is the one that returns deliverables, so your follow-up logic should wait for it rather than for the call to drop. The grant’s access token refreshes every 3,600 seconds, so even a long call records end to end without a re-auth step.
From the terminal, send the bot to a meeting link and fetch its output by ID:
nylas notetaker create --meeting-link https://meet.google.com/abc-defg-hijnylas notetaker media nt_01h9...The timing here is the part that trips people up. The recording and transcript aren’t ready the instant a call ends, so polling the media endpoint in a tight loop wastes requests and still races the processing. The cleaner design waits on a webhook that signals the media is available, then reads it once. Building the follow-up to respond to that signal rather than to the call’s end time means the rep’s email goes out with a real transcript attached instead of an empty draft.
With the transcript in hand, an agent can draft a follow-up that quotes the actual commitments made on the call, then send it through the same send endpoint covered above. That’s the architecture behind Automate meeting follow-up email: Notetaker supplies the content, email delivers it, and nothing depends on a rep remembering what was said. See the Notetaker API overview for the recording lifecycle.
Logging sales activity to the CRM
Section titled “Logging sales activity to the CRM”Pipeline hygiene fails because logging is manual, so the cleanest fix is to write activity from the source of truth instead of asking reps to retype it. Every email sent through the API, every meeting on the calendar, and every Notetaker transcript is already a structured record you can push into the CRM on a schedule or in response to a webhook. Contacts round it out: POST /v3/grants/{grant_id}/contacts creates records and GET /v3/grants/{grant_id}/contacts reads them, so new senders become CRM entries automatically.
nylas contacts search --email acme.comA common enrichment loop is to parse the signature block on inbound mail for a title and phone number, then update the matching contact, which keeps prospect records current without manual data entry. The Sync email contacts to a CRM recipe builds that pipeline end to end, and Automatically log meeting notes to your CRM handles the Notetaker side.
The architectural call is poll versus push. A scheduled poll is simpler to reason about and fine for nightly hygiene, but it lags real activity and re-reads the same pages every run. List calls return a default page size of 50 and a maximum of 200 messages per page through the limit parameter, so a nightly contact sweep across a busy territory walks several pages with the page_token cursor, and that cost repeats on every run. To log in real time instead, register a webhook with the /v3/webhooks API so the CRM update fires the moment a message sends or a meeting ends, which skips the re-read entirely for live events. Most teams end up running both: webhooks for the live activity feed and a periodic poll as a backstop that catches anything a missed delivery dropped. Either way, the record you write is derived from the mailbox, not from a rep’s recollection, which is the whole point. The payoff compounds over a quarter, because a CRM that reflects every real touch lets forecasting and next-step logic run on facts instead of on the subset of activity a rep had time to type in.
Nylas for AI Agents
Section titled “Nylas for AI Agents”AI agents that mine prospect mail for patterns and replace the manual half of pipeline hygiene. These pair naturally with the logging workflow above: the agent reads the same activity record and acts on it.
| Tutorial | Products | What you’ll build |
|---|---|---|
| Map communication patterns between orgs | Email, Calendar | Score every external contact 0–100; surface single-threaded accounts and warm-intro paths |
| Parse signatures for contact enrichment | Email, Contacts | Extract titles, phones, LinkedIn URLs from inbound mail to keep prospect records current |
| Build an AI email triage agent | cron-driven triage of the rep’s inbox; drafts replies automatically for the urgent and action-required items | |
| Multi-turn email conversations | Agent Accounts, Email | Send-receive-respond loops with persistent state, perfect for long sales cycles |
Running sales workflows from the terminal with the Nylas CLI
Section titled “Running sales workflows from the terminal with the Nylas CLI”The CLI is the fastest way to prototype an outbound motion before you write a line of integration code, and it’s a working ops tool in its own right. It mirrors the API across email, calendar, contacts, and Notetaker, so most of the sales surface has a one-liner that behaves the same across all 6 providers. Authenticate once, then drive each product directly.
nylas init --api-key <key>nylas auth whoamiA representative end-to-end loop reads as a sequence of small commands: find a time, send the invite copy, then enrich the prospect record.
nylas email send --to [email protected] --subject "Time to connect" --body "Proposing Tuesday at 10."nylas contacts search --email acme.comAdd --json to almost any command to pipe structured output into a script, and reach for nylas email scheduled list to audit queued sends or nylas notetaker list --state complete to check which recordings are ready. The full command set is documented at the Nylas CLI command reference.
Things to know about sales engagement integrations
Section titled “Things to know about sales engagement integrations”Outbound at scale runs into provider limits and token mechanics that don’t show up in a single test send, so design for them early. The constraints below come from how the connected mailboxes and the API actually behave, and they’re the difference between a demo that works and a campaign that survives a real send list.
Token handling is automatic but worth understanding. OAuth access tokens expire after 3,600 seconds, and the platform refreshes them for you, so a long-running campaign job won’t stall on an expired token. You still need to keep the grant connected, because a revoked or reauth-required grant stops both sending and reading.
Reading large result sets means paginating. Email list calls return a default page size of 50 and a maximum of 200 messages per page through the limit parameter, and you walk past the first page with the page_token cursor. Build your sync loop around the cursor from the start, since a prospect list that fits in one page during testing rarely does in production.
Provider sending nuances matter most for deliverability and attachments. All six providers share one send schema, but each carries its own sending reputation and rate behavior, which is the reason to send from the rep’s real grant rather than pool everyone through one address. Attachments up to 25 MB are inlined on a send, while Microsoft grants support up to 150 MB through upload sessions, so size your decks and one-pagers accordingly. On the calendar side, remember that Free/Busy and availability skip IMAP entirely and Free/Busy also skips iCloud, so availability-driven booking only applies to the providers that expose a calendar.
What’s next
Section titled “What’s next”- Send email: send messages through Nylas
- Message tracking: track opens and link clicks
- Notetaker API overview: meeting recording and transcription
- Scheduler overview: embeddable scheduling pages
- Email API overview: messages, threads, drafts, and send
- Calendar API overview: calendars, events, and availability
- Find meeting times: multi-attendee scheduling walkthrough
- Nylas CLI command reference: every terminal command