Kaizen #18 - Ruby SDK

Kaizen #18 - Ruby SDK

Hello everyone!
Welcome back to another week of Kaizen!
This week, we will discuss the Ruby SDK.

What is the Ruby SDK for Zoho CRM?

Ruby SDK allows you to create client Ruby applications that you can integrate with Zoho CRM, effortlessly. It serves as a wrapper for the REST APIs, thus making it easier to use the services of Zoho CRM.

Here is a sample of how the SDK acts as a middle ware between Zoho CRM and a client Ruby Application.


What can you do with the Ruby SDK?
  • Exchange data between Zoho CRM and the client application where the CRM entities are modeled as classes.
  • Authenticate your application easily every time you sync data between Zoho CRM and your application, as the SDK takes care of generating the access/refresh tokens automatically.
Environment Setup
The client app must have the Ruby version 2.3.7 or above installed. Refer to Ruby Installation for the steps to install Ruby.

How to Start using the Ruby SDK?
Follow the below steps:
  • Step-1: Register your application (Self Client or Web-based client)
  • Step-2: Install the SDK
  • Step-3: Initialize the SDK
    3.a. Choose the token persistence method
    3.b. Set up the configuration dictionary
    3.c. Generate the tokens
  • Step-4: Connect to Zoho CRM through the available methods
Let us now discuss these steps in detail.

Step-1: Register your application

All the Zoho CRM APIs are authenticated by the OAuth2.0 standards. It is mandatory to authenticate your application with Zoho.
You can register your application either as a Self Client (single user app) or a web-based app (multiple users app).
1.a. Self Client
  1. Go to https://api-console.zoho.com.
  2. Click ADD CLIENT.
  3. Choose the Client Type as Self Client, and click CREATE.
  4. You will receive a client ID and a client secret upon successful registration.
1.b. Web-based Client
  1. Go to https://api-console.zoho.com.
  2. Click ADD CLIENT.
  3. Choose the client as Web based and click CREATE NOW.
  4. Specify the client name, homepage URL of your application's UI, and a redirect URI to which you want to redirect the users after they grant consent to your application.
  5. Click CREATE.

  6. Your Client ID and Client Secret will be displayed.
Step-2: Install the SDK

The Ruby SDK is available as a gem. 
Run the below command to install the Ruby SDK for Zoho CRM.

gem install ZCRMSDK

Step-3: Initialize the SDK 

Initializing the SDK involves the following steps.

  • Step 3.a - Choosing the token persistence method
  • Step 3.b - Setting up the configuration dictionary
  • Step 3.c - Generating the tokens

3.a. Token Persistence
Your application should retain tokens (grant, access, and refresh tokens) to automate the process of data transfer between your Ruby application and Zoho CRM.

You can persist (store) the tokens in three ways.
a. MySQL Persistence (default)
b. File Persistence
c. Custom DB Persistence

a. MySQL Persistence
When you want to store the tokens in the MySQL DB, ensure that MySQL2 is installed.
Run the below command to install MySQL2.

gem install mysql2 -v 0.5.2

For this type of persistence, you must include the following keys in the configuration dictionary (discussed in the next section), along with other mandatory keys.

"mysql_username":"root",
"mysql_password":"*****",
"mysql_port":"port_number"

Note
When you use MySQL persistence, ensure that
  • MySQL runs in the same machine serving at the mentioned port. (by default 3306).
  • There is a database named zohooauth.
  • There is a table name oauthtokens with the columns useridentifier (varchar(100)), accesstoken (varchar(100)), refreshtoken (varchar(100)) and expirytime (bigint).

b. File Persistence
If you want to store the tokens in a file, you can create a file named zcrm_oauthtokens.txt and provide the absolute path of the folder containing this file in the below key of the configuration array.

"token_persistence_path":"path_to_the_folder_containing_the_txt_file"

If you do not create this file, the SDK itself creates this file in the path you have specified, and persists the token there.
Note: This method is recommended only for self client apps.

c. Custom DB Persistence
To use this method, you need to provide the following keys in the configuration dictionary.

"persistence_handler_class_path":"absolute path to the custom DB implementation"
"persistence_handler_class":"class name of the custom implementation".

You can use the inbuilt ZohoPersistenceHandler interface and include the following custom functions.

  • saveOAuthData(ZohoOAuthTokens tokens)
  • deleteOAuthTokens($userEmailId)
  • getOAuthTokens($userEmailId)
Note
The order of precedence for token persistence is custom, file, and DB persistence. That is, if you provide the details for custom persistence (in persistence_handler_class_path) and file persistence details (in token_persistence_path), then custom persistence is given priority over file.

3.b. Configuration dictionary
The below tables contains the list of keys you must include in the configuration dictionary based on the type of persistence.

Mandatory Keys

File Persistence
MySQL Persistence
Custom DB Persistence
client_id
client_id
client_id
client_secret
client_secret
client_secret
redirect_uri
redirect_uri
redirect_uri
token_persistence_path
db_username
persistence_handler_class
-
db_password
persistence_handler_class_path
-
db_port
-
current_user_email
current_user_email
current_user_email

Optional Keys

File Persistence
MySQL Persistence
Custom DB Persistence
application_log_file_path
application_log_file_path
application_log_file_path
log_in_console
log_in_console
log_in_console
sandbox
sandbox
sandbox
access_type
access_type
access_type
accounts_url
accounts_url
accounts_url
api_base_url
api_base_url
api_base_url
api_version
api_version
api_version

Where,
  • client_id, client_secret, and redirect_uri - Client details you received after registering your application. For self client apps, you can pass a dummy value for the redirect uri.
  • token_persistence_path - The relative path to store the OAuth tokens in the zcrm_oauthtokens.txt file. This key is mandatory if you want to use file persistence.
  • db_username, db_password, db_port - The MySQL username, password, and the port, respectively.
  • persistence_handler_class - Name of the class of the custom implementation for persistence. This key is mandatory if you want to use custom persistence.
  • persistence_handler_class_path - The absolute path to the custom DB implementation (.rb file).
  • application_log_file_path - The absolute path to log the exceptions during the usage of the SDK.
  • log_in_console - To print the exceptions on the console screen, when set as "true".
  • sandbox - Boolean key to make API calls to the sandbox environment. The value true makes API calls to the sandbox. Default value is false.
  • access_type - Must be set as offline as the SDK does not support online OAuth client, now.
  • accounts_url - The domain-specific accounts URL from which you generate the tokens.
    This key is mandatory when the user is not in the "com" domain.
    For US:
    https://accounts.zoho.com
    For EU:
    https://accounts.zoho.eu
    For CN:
    https://accounts.zoho.com.cn
    For IN:
    https://accounts.zoho.in
  • api_base_url - The domain-specific API URL from which you make API calls. For users from domains other than the US, this key is mandatory.
    For US:
    https://www.zohoapis.com
    For EU:
    https://www.zohoapis.eu
    For CN:
    https://www.zohoapis.com.cn
    For IN:
    https://www.zohoapis.in
  • api_version - Represents the version of the CRM APIs. The value is v2.
  • current_user_email - The email ID of the current user. You must set this either in the configuration array or ZCRMSDK::RestClient::ZCRMRestClient.current_user_email = "current user email id".

Below is a configuration dictionary with all the keys. 

config_details = { 'client_id' => 'xxxxx', #mandatory
'client_secret' => 'xxxxxx', #mandatory
'redirect_uri' => 'https://www.zoho.com', #mandatory
'api_base_url' => 'https://www.zohoapis.com', #optional, default is https://www.zohoapis.com
'accounts_url' => 'https://accounts.zoho.com', #optional, default is https://accounts.zoho.com
'current_user_email' => 'abc@xyz.com', #mandatory (should be either set in config array or ZCRMSDK::RestClient::ZCRMRestClient.current_user_email = "current user email id" )
'api_version' => 'v2', #optional,default is v2
'sandbox' => 'false', #optional default is sandbox
'application_log_file_path' => "/Users/xxxx/Desktop/log.log", #optional, absolute path of log file
'log_in_console' => 'true', #optional default is false, to log on the console
'persistence_handler_class_path' => 'absolute/path/to/customClass.ruby', #absolute path to the custom db implementation
'persistence_handler_class' =>'classname', #name of the class
'token_persistence_path'=>'relativepath/to/zcrm_oauthtokens.txt', #for file persistence
'db_username' => 'username', #optional, default root
'db_password' => 'password', #optional, default ''
'db_port' => 'port_number', #optional, default 3306
}

Now that you have created and registered your app with Zoho, you must authenticate it. 
Pass the configuration dictionary in the method ZCRMRestClient.init(config) and authenticate your app.

3.c. Generating the tokens

As the V2 Zoho CRM APIs follow the OAuth2.0 protocol, it is mandatory to authorize the OAuth2.0 app before using the SDK functions.
You can generate an access token from a grant token.
You can generate the grant token in two ways based on the type of client.

For Self Client Applications
  • Go to Zoho Developer Console.
  • Select your Self Client.
  • Provide the necessary scopes separated by commas, along with the scope aaaserver.profile.READ.
  • Select the Time Duration from the drop-down. This is the time the grant token is valid for.
  • Provide a description for the scopes. Click GENERATE.
  • Copy the grant token.

For Web-based Applications

It is the responsibility of your client app to generate the grant token for the users trying to login.
Your Application's UI must have the Login with Zoho option to open the grant token URL of Zoho, which would prompt for the user's OAuth2.0 authorization.
Upon the successful login of the user, the grant token will be sent as a parameter to your registered redirect URL.

Generating an access token from the grant token
Use the below code snippet in your main class.

client = ZCRMSDK::OAuthClient::ZohoOAuth.get_client_instance
grant_token = 'grant_token'
client.generate_access_token(grant_token)
Note
  • The code snippet to generate the access token from the grant token is valid only once per grant token. If the grant token expires before you generate the access token, you must generate a new grant token only.
  • Generating access and refresh tokens is a one-time process. After the tokens are generated the first time, the SDK persists them based on the keys defined in the configuration dictionary, and refreshes the access token as and when required.

Step-4: Connect to Zoho CRM through the available methods
Here is a sample to get a specific user's details. You can find the code for this sample in the attachment.


The isTokenGenerated Method

def self.is_token_generate(user)
    tokens = ZCRMSDK::OAuthClient::ZohoOauth.get_persistence_instance.get_oauth_tokens(user)
    unless tokens.nil?
        return true
    end
    rescue Exception => e
        return false 
  end
You need to add this method to check if the access token has already been generated or not. It returns a Boolean value.
  • true - The access token has already been generated. 
  • false - The access token has not been generated previously, thus, it shifts the control to the code snippet that leads to access token generation.
For more sample codes, refer to our SDK guide.
We hope you found this post useful. Stay tuned for more!

Cheers!




    Access your files securely from anywhere

        All-in-one knowledge management and training platform for your employees and customers.






                              Zoho Developer Community




                                                    • Desk Community Learning Series


                                                    • Digest


                                                    • Functions


                                                    • Meetups


                                                    • Kbase


                                                    • Resources


                                                    • Glossary


                                                    • Desk Marketplace


                                                    • MVP Corner


                                                    • Word of the Day


                                                    • Ask the Experts



                                                              • Sticky Posts

                                                              • Kaizen #198: Using Client Script for Custom Validation in Blueprint

                                                                Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                              • Kaizen #226: Using ZRC in Client Script

                                                                Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
                                                              • Kaizen #222 - Client Script Support for Notes Related List

                                                                Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                              • Kaizen #217 - Actions APIs : Tasks

                                                                Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                              • Kaizen #216 - Actions APIs : Email Notifications

                                                                Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are


                                                              Manage your brands on social media



                                                                    Zoho TeamInbox Resources



                                                                        Zoho CRM Plus Resources

                                                                          Zoho Books Resources


                                                                            Zoho Subscriptions Resources

                                                                              Zoho Projects Resources


                                                                                Zoho Sprints Resources


                                                                                  Qntrl Resources


                                                                                    Zoho Creator Resources



                                                                                        Zoho CRM Resources

                                                                                        • CRM Community Learning Series

                                                                                          CRM Community Learning Series


                                                                                        • Kaizen

                                                                                          Kaizen

                                                                                        • Functions

                                                                                          Functions

                                                                                        • Meetups

                                                                                          Meetups

                                                                                        • Kbase

                                                                                          Kbase

                                                                                        • Resources

                                                                                          Resources

                                                                                        • Digest

                                                                                          Digest

                                                                                        • CRM Marketplace

                                                                                          CRM Marketplace

                                                                                        • MVP Corner

                                                                                          MVP Corner









                                                                                            Design. Discuss. Deliver.

                                                                                            Create visually engaging stories with Zoho Show.

                                                                                            Get Started Now


                                                                                              Zoho Show Resources

                                                                                                Zoho Writer

                                                                                                Get Started. Write Away!

                                                                                                Writer is a powerful online word processor, designed for collaborative work.

                                                                                                  Zoho CRM コンテンツ




                                                                                                    Nederlandse Hulpbronnen


                                                                                                        ご検討中の方




                                                                                                                • Recent Topics

                                                                                                                • Email Forwarding: Maintain business continuity

                                                                                                                  As an administrator, ensuring uninterrupted email communication is critical when a role-based employee is unavailable due to extended leave or a temporary role change. Emails from customers, partners, and internal teams must continue to be received and
                                                                                                                • Tip #61- Collaborate live with Invite Technician- 'Insider Insights'

                                                                                                                  Hello Zoho Assist Community! From the series of Technician Console, we will be exploring Session. Let's jump right into a brief overview. We’ve all been there: you’re deep into a complex remote session, and you realize you need a second pair of eyes.
                                                                                                                • How to integrate Zoho CRM, Zoho Forms and a WIX Web Site

                                                                                                                  Attached video demonstrates how to use Zoho Forms included in Zoho One, to design a Contact Us form to be embedded into a WIX web site and integrated into Zoho CRM.
                                                                                                                • Bug Causing Major Sync & SO Access Failures in Zoho POS

                                                                                                                  We are experiencing critical and recurring issues in Zoho POS that all trace back to role-permission handling defects in the latest POS app version. These issues directly affect syncing, login ability, and Sales Order access for role-restricted users
                                                                                                                • Add Custom Reports To Dashboard or Home Tab

                                                                                                                  Hi there, I think it would be great to be able to add our custom reports to the Home Tab or Dashboards. Thanks! Chad Announcement: The feature is being rolled out across DC's and Edition in phases. To know more refer to the announcement post here.
                                                                                                                • How to block whole domain?

                                                                                                                  I am getting at least 50-75sometimes over 100 spams emails a day. I see a lot of the spam is coming from .eu domains. I would like to block /reject all email coming for the .eu domain. I do not have any need for email from .EU domains. Why won't the BlackList
                                                                                                                • Hiding Pre-defined Views

                                                                                                                  You can enhance Zoho with custom views - but you cannot hide the pre-defined views. Most users focus on 4 or 5 views. Right now for EVERY user EVERY time they want to move to one of their 4 or 5 views - they have to scroll down past a long list of pre-defined
                                                                                                                • why can't agent see accounts & contacts

                                                                                                                  My new user, with 'Agent' privileges, cannot see records that don't belong to them. How can I give them access? Why isn't this the default configuration in Zoho?
                                                                                                                • Sender Email Configuration Error.

                                                                                                                  Hello Team, Hope you are all doing well. We are in the process of creating the Zoho FSM environment in the UAE. When we try to add the sender email address “techsupportuae@stryker.com”, we receive the error message: “Error occurred while sending mail
                                                                                                                • 【Zoho CRM】フィルター機能のアップデート:ルックアップ項目を使ったデータフィルタリング

                                                                                                                  ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 今回は「Zoho CRM アップデート情報」の中からフィルター機能のアップデートをご紹介します。 ルックアップ項目を使ったデータフィルタリングがより詳細に行えるようになりました。 この機能は詳細フィルターとカスタムビューで利用でき、必要な情報を正確に取得できます。 これにより、タブ間を移動することなく、より深く正確な方法でデータを絞り込むことが可能になります。 ◉できること 詳細フィルターとカスタムビューで、ルックアップ先タブの項目が選択可能
                                                                                                                • This will be long, Please bear with me - Next Gen Layout - Search

                                                                                                                  In general, I think that Zoho are going in the right direction with the Next Gen UI. The latest update brings some nice improvements and all-in-all from a user's perspective I think the improvements are generally very good. However, there are some areas
                                                                                                                • Zoho Books | Product updates | July 2025

                                                                                                                  Hello users, We’ve rolled out new features and enhancements in Zoho Books. From plan-based trials to the option to mark PDF templates as inactive, explore the updates designed to enhance your bookkeeping experience. Introducing Plan Based Trials in Zoho
                                                                                                                • Zoho Books | Product updates | August 2025

                                                                                                                  Hello users, We’ve rolled out new features and enhancements in Zoho Books. From the right sidebar where you can manage all your widgets, to integrating Zoho Payments feeds in Zoho Books, explore the updates designed to enhance your bookkeeping experience.
                                                                                                                • Weekly Tips: Protect Confidential Information with PGP in Zoho Mail

                                                                                                                  We deal with confidential information almost every day, whether it is being sent out or received. Though emails sent using Zoho Mail are encrypted both during transit and at rest, attempts to access and steal your sensitive data are always a threat that
                                                                                                                • Quotes Approval

                                                                                                                  Hey all, Could you please help in the following: When creating quotes, how to configure it in a way, that its approval would work according to the quoted items description, not according to quote information. In my case, the quote should be sent to approval
                                                                                                                • Important Update: Facebook Pages API Deprecation

                                                                                                                  Dear Zoho Analytics users, As of January 26, 2026, Facebook has officially deprecated Facebook Pages API version 18. This update involves the removal of several metrics that were previously supported by the API. As a result, these changes will affect
                                                                                                                • Adding a Deal to and Existing Contact

                                                                                                                  I want to easily add a Deal to an existing Contact. If I click on New Deal on the Contact page this currently this is what happens: All of the mandatory field (and other field) information exists within the Contact. Is there a simple way for it to automatically
                                                                                                                • Custom SMTP is now available in Zoho Sign

                                                                                                                  Hi there! Want to send Zoho Sign emails from your organization's or personal email server? Look no further! Zoho Sign has introduced custom Simple Mail Transfer Protocol (SMTP) for Enterprise users across all data centers. By enabling custom SMTP, you
                                                                                                                • Deleting a memorized email address

                                                                                                                  How can I delete a memorized email address? Even though the address has been deleted from Contacts, Zoho mail still auto suggests the address when typing it into the TO field. Thanks!
                                                                                                                • Email was sent out without our permission

                                                                                                                  Hi there, One customer just reached out to us about this email that we were not aware was being sent to our customers. Can you please check on your end?
                                                                                                                • Flexible Partial-Use Coupons (Stored Value Credits)

                                                                                                                  Subject: Feature Request: Ability for users to apply partial coupon balances per transaction Problem Statement Currently, our coupons are "one-and-done." If a user has a $50 coupon but only spends $30, they either lose the remaining $20 or are forced
                                                                                                                • Prevent accidental duplicate entry of Customer Ordersome

                                                                                                                  Zoho Support has confirmed that Zoho currently does not have any method (using Deluge, flow or any other method) to alert a user when a sales order has been entered twice using the same customer reference number (i.e. a duplicate). Most ERP platforms
                                                                                                                • Collapsing and expanding of lists and paragraphs

                                                                                                                  hello Would you ever implement Collapsing and expanding of lists and paragraphs in zoho writer ? Best regards
                                                                                                                • Migrating Brevo Automation Logic to Zoho Campaigns

                                                                                                                  Hello Zoho Campaigns Support Team, I am in the process of migrating my email marketing from Brevo to Zoho Campaigns. I have around 10,000 contacts, which I have already successfully exported from Brevo and imported into Zoho Campaigns. I now need guidance
                                                                                                                • Is there a way to delete workspaces?

                                                                                                                  I want to remove one of the workspaces in my Campaigns account. I don't see any obvious way to do this. Am I missing something?
                                                                                                                • New Custom View -Sorting the Custom fields

                                                                                                                  While creating a New Custom View in invoice , Customers, Bills ,expense etc , the sorting of custom fields are not available , a query function "order by / sort by  " may also be included in  Define new criteria module  which will be more beneficial to
                                                                                                                • Make CAMPAIGNS email look as simple as possible

                                                                                                                  Hi there I'm trying to make my Campaigns email look as much like a normal email as possible. I'm a bit stuck with the "justification" of the email email block. Can I LEFT JUSTIFY the "whole email" to make it look "normal"? (Please see screenshot attached)
                                                                                                                • Canadian Banks ?

                                                                                                                  Can you advise which Canadian Banks can be used to fully sync credit cards and bank accounts? Thanks
                                                                                                                • Sorry! we encountered some problems while sending your campaign. It will be sent automatically once we are ready. We apologize for the delay caused.

                                                                                                                  Hello. Lately we are having problems with some campaigns, which show us this error message. Sorry! we encountered some problems while sending your campaign. It will be sent automatically once we are ready. We apologize for the delay caused. We can't find
                                                                                                                • Can I remove or divert certain contacts from an active Campaigns workflow?

                                                                                                                  I have created a workflow in Zoho Campaigns, which sends different emails, once contacts have been added to a mailing list. To choose which email to send to the contacts, there are conditions, which divert contacts based on their company type and their company size. There was a subsection of this workflow, where company size wasn't selected correctly, and some contacts have been sent down the wrong path and received the wrong email. The workflow contains a reminder loop and a further series of emails.
                                                                                                                • How to map fields from Zoho Recruit to Zoho People

                                                                                                                  I've got these fields from my Job Offer that I'm trying to map to the Work information fields in Zoho People, but they arent showing up. For example, how do I get the department name field (in the job post) to map to the work information field in Zoho
                                                                                                                • UTM in zoho campaigns

                                                                                                                  Helloo everybody!!! Someone know how IF ZOHO CAMPAIGNS has UTM for tracking the url of any campaigns. thank u
                                                                                                                • Full Context of Zoho CRM Records for Zia in Zoho Desk for efficient AI Usage

                                                                                                                  Hello everyone, I have a question regarding the use of Zia in Zoho Desk in combination with CRM data. Is it possible to automatically feed the complete context of a CRM record into Zia, so that it can generate automated and highly accurate responses for
                                                                                                                • Knowledge base printing

                                                                                                                  I saw a posting about printing the knowledge base as I was looking for the answer, but we would like the ability to print out the entire knowledge base with a click, keeping the same organization format.   Bonus would include an index of keywords and
                                                                                                                • Search not working!

                                                                                                                  I have items in my notebook tagged but when I search for a tag nothing comes up! Any fix for this?
                                                                                                                • Updates for Zoho Campaigns: Merge tag, footer, and autoresponder migration

                                                                                                                  Hello everyone, We'd like to inform you of some upcoming changes with regard to Zoho Campaigns. We understand that change can be difficult, but we're dedicated to ensuring a smooth transition while keeping you all informed and engaged throughout the process.
                                                                                                                • How do i integrate google analytics to Zoho Campaigns?

                                                                                                                  Looking to track Zoho Traffic from email Current topic is outdated
                                                                                                                • How do teams manage meeting follow-ups across Zoho tools?

                                                                                                                  We’re using Zoho tools for collaboration and tracking, but managing meeting notes, action items, and follow-ups across teams is still challenging. Curious how others are handling this within Zoho workflows. Are there best practices or integrations that
                                                                                                                • Mejoras urgentes para ZOHO MEETING

                                                                                                                  Tengo unos meses usando Zoho Meeting. En general, es buena, pero hay cosas vitales que no logra cumplir con mínima calidad. 1) Calidad de audio y video: urge mejoras. Audio con retraso, imagen borrosa, mal recorte de silueta con fondos virtuales. Además,
                                                                                                                • Saving sent email campaign as PDF

                                                                                                                  I'm looking to add all campaigns sent to an archive folder in sharepoint. Is there anyway to accomplish this in Zoho Flow ? I'm falling at the first hurdle ... can I automatically save a sent campaign as a PDF to a folder location ?
                                                                                                                • Next Page