Gmail
Bidirectional sync with Gmail — emails in the customer timeline, AI with full context.
The Gmail integration is probably the most important for a CSM. It feeds the timeline, the sentiment, and the engagement dimension of the health score.
What it does
- Automatic timeline — every email to or from a contact associated with a customer lands on their record.
- Automatic assignment — if a participant on the email is a registered contact of exactly one customer, the message associates to that customer.
- AI with context — when you ask "what happened with Acme this month", the AI can read the synced emails.
- Health signals — frequency, response time, NLP sentiment feed the Engagement dimension.
- Reply from LealUp — reply without leaving the record, from your own account.
What it does NOT do
- Doesn't send automated emails without a human dispatching them.
- Doesn't modify your labels or create folders.
- Doesn't read other team members' emails — each CSM connects their own account.
How to connect
This integration is per user, not per workspace.
- Settings → Integrations → Gmail → Connect.
- Google OAuth flow. It's a single authorization covering the four scopes LealUp uses — there is no per-scope opt-in:
https://www.googleapis.com/auth/gmail.readonly— read messages.https://www.googleapis.com/auth/gmail.send— send from your account.https://www.googleapis.com/auth/calendar.events— read and create events (Google Calendar).https://www.googleapis.com/auth/userinfo.email— know which account you connected.
- Authorize the access.
- Initial backfill — LealUp reads the last 7 days of your mailbox and stores the messages involving a customer contact. From then on, sync is continuous.
That initial backfill is not configurable. If you need more history brought in, write to us and we will look at it case by case.
Scopes and security
We use the narrowest scopes that exist for what the product does. gmail.readonly is the narrowest Google scope that returns a message body — gmail.metadata returns headers only (useless for sentiment analysis) and is equally restricted. We do not request modify, delete, or the Contacts API.
Reading and storing are different things, and the difference matters:
- We read the messages in the synced window of your mailbox. The Gmail API cannot filter by sender on the incremental sync path, so the only way to know whether a message involves a customer is to read it.
- We store headers and body only for messages involving a registered contact of one of your customers, on that customer's timeline.
- We store nothing for messages that involve no customer contact. They are discarded on the spot — your personal correspondence never reaches the database.
- Attachments — name, size and type only. Never the file contents.
Revoke at any time from myaccount.google.com/permissions. LealUp detects the revocation within minutes and marks the integration as disconnected.
How emails associate to customers
The message participants (from, to, cc) are compared against the registered contact emails of your customers. Matching is by exact address, not by domain.
Your own address is excluded from the comparison: many CSMs are registered as a contact on several customers, and without that exclusion every message you send would match all of them.
Depending on how many customers match:
- One customer → the message lands on that customer's timeline.
- No customer → it's discarded. Nothing is stored.
- Two or more customers → it goes to Unmatched Emails so you can pick which one it belongs to. This happens when a contact works with two of your customers, or when the thread has participants from both.
AI and Gmail
LealUp's AI can answer questions using indexed emails:
- "What was discussed with Acme about renewal?"
- "Summarize the last 5 emails with Maria at Globex."
- "Did any customer mention 'cancel' this week?"
Everything stays inside the workspace. LealUp doesn't use your emails to train global models.
Sentiment and NLP
From synced emails, LealUp analyzes:
- Tone — positive / neutral / negative (multilingual model ES/PT/EN).
- Critical keywords — competitors, terms like "cancel", "terminate", "problems", "critical bug".
- Response time — how long your champion takes to reply to you (proxy for interest).
These signals feed the Sentiment dimension of the health score. See Health model.
Reply from LealUp
If you enabled the send scope:
- In Customer 360 → Timeline → "Reply" button next to an email.
- A composer opens with the thread. The email goes out from your Gmail account (as if you had written it in Gmail directly).
- It lands in your actual Gmail
Sent— it doesn't live only in LealUp.
The AI can suggest drafts based on context:
- "Write a reply to Maria's last email thanking her for the feedback and asking to refer a case."
You always review and send. No automatic sending.
Chrome extension (optional)
To log emails from Gmail.com directly without leaving:
- Install the LealUp Gmail Extension from the Chrome Web Store.
- On any email, a "Log to LealUp" button appears.
- It associates to the customer automatically (or suggests options if there's ambiguity).
The extension is optional — the OAuth integration already indexes emails. The extension helps for quick notes or manual association of ambiguous cases.
Common issues
"I don't see my emails in the timeline"
- Verify the other person's address is registered as a contact of the customer. Matching is by exact address: if the contact isn't there, the message isn't stored.
- Initial backfill can take up to 30 min for large accounts.
- Confirm the integration says "connected" in Integrations.
"Gmail says access was revoked"
- Some Google Workspace admin changed the OAuth app policy.
- Reconnect: Settings → Integrations → Gmail → Reconnect.
- If it persists, contact your Workspace admin to whitelist LealUp.
"The AI can't find X's email"
- It may be in an old thread (outside the 90-day window).
- The sender's address may not be registered as a contact of any customer — in which case the message was never stored.
- The AI only reads what's indexed; if it wasn't indexed, it doesn't see it.
"I see personal-life emails in the timeline"
- This shouldn't happen: a message is stored only if one of its participants is registered as a contact of a customer.
- The usual cause is a contact registered with a personal address that you also use for your own things. Review that customer's contacts and remove the address that doesn't belong.
- If that isn't it, it's a bug — report with the
trace_id.
Disconnect
Settings → Integrations → Gmail → Disconnect
- Revokes the OAuth token (via Google).
- Indexed emails remain (to preserve customer history).
- If you want to delete the emails too: Support → Request Gmail data deletion.