Zoho Mail API Integration: OAuth 2.0 Setup and Sending Emails with Attachments

I have been searching for a Gmail alternative with good API support, particularly one with an outgoing webhook to notify external applications when new emails are created. Zoho Mail offers this feature: Configure webhooks to integrate external applications - Zoho Mail, which helps me avoid checking my inbox every minute to see if an email has arrived… Additionally, Zoho Mail Lite costs only €13.50 per year, and you can use your own domain!

However, I faced some challenges setting up OAuth 2.0 authentication and authorization with Zoho (OAuth 2.0 User Guide | Zoho Mail API) and figuring out the correct request structures for sending an email with multiple attachments (POST - Send an email with Attachments). I’ve now successfully achieved both using a Make scenario. Here are the details to save you time :wink:

Zoho API Console: Create the OAuth 2.0 Authentication Client Application

  1. Go to the Zoho API Console: https://api-console.zoho.eu/ (ensure you’re on the correct data center domain: .com, .eu, .uk, .in, .com.au, .jp, .ca, or .sa).
  2. Add a “Client Name” – anything you like, e.g., “Make.”
  3. Add a “Homepage URL” – your domain, for example.
  4. Add “Authorized Redirect URIs” – this needs to be: https://www.integromat.com/oauth/cb/oauth2.
  5. Save the “Client ID” and “Client Secret” for later use in the OAuth 2.0 setup in Make.

Zoho OAuth 2.0 Connection in Make

Since Zoho Make Modules don’t support attachments, you’ll need to create your own OAuth 2.0 connection:

  1. Flow type: Authorization Code
  2. Authorize URI: https://accounts.zoho.eu/oauth/v2/auth
  3. Token URI: https://accounts.zoho.eu/oauth/v2/token
  4. Scopes (you don’t need to add all of them):
    • ZohoMail.accounts.ALL
    • ZohoMail.partner.organization.ALL
    • ZohoMail.organization.subscriptions.ALL
    • ZohoMail.organization.spam.ALL
    • ZohoMail.organization.accounts.ALL
    • ZohoMail.messages.ALL
    • ZohoMail.attachments.ALL
    • ZohoMail.organization.groups.ALL
    • ZohoMail.tags.ALL
    • ZohoMail.folders.ALL
    • ZohoMail.organization.domains.ALL
    • ZohoMail.tasks.ALL
    • ZohoMail.notes.ALL
    • ZohoMail.links.ALL
  5. Client ID:
  6. Client Secret:
  7. Scope separator: SPACE
    8 Authorize parameters (Click: “Show advanced settings”):
    • Item 1 (Key): access_type
      Value: offline
    • Item 2 (Key): response_type
      Value: code
  8. Token placement: In the header
  9. Header token name: Zoho-oauthtoken

Finally, import the blueprint and adjust the value in the first module: “Setup Variables - TODO.” Ensure you are using the correct region domain for your account.
Sending_Email_with_Multiple_Attachments_via_Zoho_Example.json (41.5 KB)