Keep All Replies in Gmail, Not Slack
Someone DMs you in Slack with a question or update about a previous email. Instead of replying in Slack and forgetting, Notis drafts a reply directly in the Gmail thread.
Trigger
Direct Message Received
Triggered when a new direct message (DM) is sent to a user in Slack. Catches all DMs across all DM channels.
Action
Reply to email thread
Sends a reply within a specific gmail thread using the original thread's subject, requiring a valid `thread id` and correctly formatted email addresses. supports attachments via the `attachment` parameter with valid `s3key`, `mimetype`, and `name`.
Why this helps
Communication gets fragmented across apps. Clients or colleagues DM you in Slack, but the actual conversation thread lives in email. Replies stay scattered, and email threads feel incomplete.
- Keep all communication in email, the universal record
- Avoid breaking context by replying in the wrong channel
- Maintain cleaner email threads without orphaned replies
- Reduce the cognitive load of deciding where to respond
Setup
Build it in a few focused steps.
- 1Connect Slack and Gmail to Notis.
- 2Create an automation: 'When I get a Slack DM, find the related Gmail thread and draft a reply in that thread.'
- 3Notis will match the sender's email address to the Gmail thread automatically.
- 4Specify which DMs trigger this (all, or only from certain people).
- 5Test with a real DM; Notis will create a reply draft in the matching Gmail thread.
Questions about this workflow
How does Notis know which email thread to reply to?
Notis matches the DM sender's email address to their email history in Gmail. If there's ambiguity, it asks for clarification.
What if there's no matching Gmail thread?
Notis will create a new email draft instead, treating it as a fresh conversation.
Can I customize the reply format?
Yes. Tell Notis what tone, signature, or format to use, and it will apply that to every reply.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Slack to Gmail. A trigger fires from one place; an action lands in another.
Slack triggers
Gmail actions
New Channel Created Trigger
Triggered when a new channel is created in Slack.
Modify email labels
Adds and/or removes specified gmail labels for a message; ensure `message id` and all `label ids` are valid (use 'listlabels' for custom label ids).
Channel Message Received
Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.
Create email draft
Creates a gmail email draft, supporting to/cc/bcc, subject, plain/html body (ensure `is html=true` for html), attachments, and threading.
Direct Message Received
Triggered when a new direct message (DM) is sent to a user in Slack. Catches all DMs across all DM channels.
Create label
Creates a new label with a unique name in the specified user's gmail account.
Message Reaction Added
Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.
Delete Draft
Permanently deletes a specific gmail draft using its id; ensure the draft exists and the user has necessary permissions for the given `user id`.
Message Reaction Removed
Triggered when a reaction is removed from a message in Slack. Supports optional filtering by channel and emoji name.
Delete message
Permanently deletes a specific email message by its id from a gmail mailbox; for `user id`, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access.
Reaction Added Trigger
DEPRECATED: use `SLACK_MESSAGE_REACTION_ADDED` instead. Triggered when a reaction is added to a message in Slack.
Fetch emails
Fetches a list of email messages from a gmail account, supporting filtering, pagination, and optional full content retrieval.
Reaction Removed Trigger
DEPRECATED: use `SLACK_MESSAGE_REACTION_REMOVED` instead. Triggered when a reaction is removed from a message.
Fetch message by message ID
Fetches a specific email message by its id, provided the `message id` exists and is accessible to the authenticated `user id`.
New Bot Message Received Trigger
DEPRECATED: use `SLACK_CHANNEL_MESSAGE_RECEIVED` with `is_bot_message=true` instead. Triggered when a new bot message is posted to a Slack channel.
Fetch Message by Thread ID
Retrieves messages from a gmail thread using its `thread id`, where the thread must be accessible by the specified `user id`.
Connect any two apps with Notis in the middle.
Not just Slack and Gmail. Any combination from 985+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7 days free trial with 20$ free usage included.
No card. Works with personal or business Gmail.
