IMAP email to Google Sheets: one row for every new email

To log emails from any IMAP mailbox in Google Sheets, nana800 connects two blocks: IMAP incoming email checks a mailbox folder once a minute, and google sheet record appends a row for every new email. You need the IMAP server address, a login and an app password of the mailbox. No code is needed, and your balance is topped up to $3.50 for free every month.

Build it in the builder

What you can automate

  • Log the orders and leads your website or marketplace sends to the shop mailbox: time, sender, subject and the start of the email
  • Save only the emails of an Invoices folder: a rule in your mail files supplier emails there, and the trigger watches that folder
  • Track requests to a support mailbox on your company domain: when it arrived, who sent it, who is in copy and the subject, while the team sets the status by hand
  • Collect emails of several company mailboxes in one sheet: one trigger per mailbox, and a Mailbox column holds the address you typed into the sheet block
  • Link client replies to the original emails: the in_reply_to field holds the message_id of the email that was answered

How to set it up

  1. 1

    Turn on IMAP and create an app password

    In your mail settings allow mail apps to connect over IMAP. Many services only accept IMAP with an app password, which you create in the security settings of the mail account. The IMAP server address is in the help pages of the service and usually starts with imap. For company mail, ask your administrator for the server and port.

  2. 2

    Prepare a tab for the emails

    Put column names in the first row of the tab, for example Received, From, Cc, Subject, Preview. A column for your own notes, such as Status, stays empty. The block matches column names in any letter case and adds a missing column on the right.

  3. 3

    Add the IMAP incoming email trigger

    Create a scheme and add this trigger. Enter the server address without http:// and without a port, then port 993 with SSL_TLS or 143 with STARTTLS. The login is usually the full email address. Keep INBOX in the folder field or type the name of your folder. The mark as read option decides whether the email becomes read once the scheme starts.

  4. 4

    Map the email fields to columns

    Add the google sheet record block and give it Google access: the sign-in button (OAUTH) or a service account (SERVICE_ACCOUNT) shared on the sheet as an editor. Paste the sheet address, set the sheet number to 0 and pick append_row. In the row data: Received - received_time, From - from, Cc - cc, Subject - subject, Preview - snippet.

  5. 5

    Start the scheme and check the first row

    Turn the scheme on. The first check only remembers the emails already in the folder and does not write them to the sheet. Send a test email to the mailbox: a row appears at the bottom of the tab after the next mail check. An enabled scheme costs $0.0042 per hour.

Pricing

A run of a Email block costs $0.002-$0.02, a run of a Google Sheets block costs $0.001. Every month the balance is topped up to $3.50 for free, an enabled scheme costs $0.0042 per hour.

Services in this connection

  • Email

    Send emails from your own mailbox and start schemes on new mail in Gmail, Yandex or any other mailbox with IMAP. No code, free balance every month.

  • Google Sheets

    Send leads and orders to Google Sheets without code: append rows, find, read and update them by row number. Free balance every month, no card needed.

Similar integrations

  • Email + Bitrix24

    Every new email in your Gmail, Zoho or company mailbox becomes a Bitrix24 lead by itself, with subject, sender and text. No code, free balance every month.

  • Email + Telegram

    Forward new emails from any IMAP mailbox to Telegram with no code: sender, subject and text, also from your company domain. Free balance every month, no card needed.

  • Schedule + Email

    An email goes out on schedule by itself: a daily report, a reminder for your team or a client, a one-off email on an exact date. From your own mailbox over SMTP, no code.

  • Webhook + Email

    Every website form lead arrives as an email to your inbox or to several teammates at once. Sent through your own mailbox, free balance every month, no card needed.

  • Gmail + Google Sheets

    Every new Gmail email becomes a row in Google Sheets, with the sender, subject, date and start of the text in their own columns. Free balance monthly, no card needed.

  • Telegram + Google Sheets

    Your Telegram bot saves messages and leads to a Google Sheet by itself: name, username, text and date. No code, free balance every month, no card needed.

Frequently asked questions

Every email takes three basic block runs: two for the IMAP incoming email trigger and one for the row. 1,000 runs cost $1. Minute checks that find no new email are free, and a row that Google rejected is not charged. On top of that, every hour the scheme is on costs $0.0042: left on for a whole month, these hours take most of the free $3.50.

Any mailbox with IMAP access, including mail on your own domain at a hosting provider. The server must be reachable from the internet: internal addresses such as localhost or 192.168.0.10 do not work, so a mail server inside an office network without a public address cannot be connected. Gmail works over IMAP too, but the gmail incoming email trigger with Gmail search fits it better.

The trigger has no sender or subject search, it takes every new email of the folder. One way: set up a mail rule that moves the right emails to a separate folder and put that folder into the trigger. The other way: add the free condition block before the sheet with an INCLUDES check on from or subject. The check is case sensitive, so Invoice and invoice are different words for it.

date is the date written in the email by the sender app. received_time is when the email reached your server, which is more reliable for a log. Both are ISO in UTC, for example 2026-11-07T09:15:00.000Z. snippet holds the first 120 characters of the text in one line, with HTML tags removed for HTML-only emails. The full text is in body_text, but one Google Sheets cell holds at most 50,000 characters.

Open the scheme log. If there is no run, the trigger never reached the email: check that the scheme is on, the email is in the folder you set and not in spam, and the server, port, login and password are right. A failed mailbox login does not show up in the log, so an empty log often means a wrong password. If there is a run, open the result of the google sheet record block: the Google answer is in error_message.

No. The first check remembers the emails already in the folder and does not start the scheme. It does the same after you change the server, login or folder, and after the mail server renumbers the folder, which can happen when a mailbox is moved. Emails older than three days are skipped, and if more than 300 arrive in a minute, the rest are saved on the next checks. Each email gives one row, even after a server restart.

Build your first scheme for free

Sign-up is free and needs no card. Every month the balance is topped up to $3.50 for free, enough for about 3,500 runs of basic blocks.

Build it in the builder