A peek into Deluge's file functions

A peek into Deluge's file functions

Hello everyone,

Recognizing the importance of files in Zoho products, Deluge implements FILE as a unique type of data. It also comes with a set of built-in functions that operate on FILE data type to identify the properties of files, zip or unzip files, and more. In this post, we will cover Deluge file functions that let you work with your digital documents using Deluge.

Files in Deluge
Files in Deluge must be fetched from the web or cloud service. It doesn't operate on offline files. The following are the ways you can bring files into Deluge scripting:
Irrespective of the format, all the files fetched using any of the above-mentioned methods, except the "fetch records" task and "input" keyword, are treated as file objects (or FILE data type). For example, be it a .pdf format file or a .jpeg format file, both are categorized under FILE data type. The files fetched using the "fetch records" task and "input" keyword are not considered as FILE data type, and hence file functions cannot be applied on them. However, such files can be used in integration tasks (for example in attach file crm task), or in the send mail task to send as a file attachment, or to assign the file as a value to another Zoho Creator file field.

File functions
File functions are built-in functions that operate on file objects (or FILE datatype). These functions cannot be applied on files fetched using the Zoho Creator "fetch records" task or "input" keyword.

The following table lists the file functions available in Deluge:

Function
Description
Checks if a variable is of FILE data type.
Converts a TEXT or COLLECTION value into file object. This function is supported in all Zoho services except Creator.
Returns the name of the input file.
Returns the size of the input file.
Returns the content of the input file.
Returns the type of the input file. This function is supported in all Zoho services except Creator.
Renames the input file with the specified name.
Compresses one or more file into a single zip file.
Extracts the content of the input zip file.

Apart from the above-mentioned functions, we also have setCharset, setFileType, and setParamName which can be used only on invoke URL task to set file properties.

Example 1: Uses setFileName and compress functions
Imagine you want to rename a few documents, convert them into a single zip file, and send the compressed zip file as an email attachment. The following example performs these actions in the below order:

  1. Fetches an invoice from Zoho Books. 
  2. Generates file name based on the customer name and current date & time, and renames the fetched invoice using the setFileName function.
  3. Fetches the customer's contract from Zoho Workdrive.
  4. Generates file name based on the customer name and current date & time, and renames the fetched contract using the setFileName function.
  5. Converts the fetched invoice and contract documents into a zip file using compress function.
  6. And lastly, sends the renamed file as attachment of sendMail task.

Step 1:
  1. // Fetch the required invoice from Zoho Books. invoice_pdf variable holds the fetched file object
  2. invoice_pdf = invokeUrl
  3. [
  4. url:"https://books.zoho.com/api/v3/invoices/pdf?organization_id=70XXXX516&invoice_ids=2155XXXXXXXXXXXXXXXX09"
  5. type: GET
  6. connection: "books_connection"
  7. ];

Step 2:
  1. // Generate the file name with customer name and current time. Here, customer_name is the input parameter of the custom function
  2. generated_pdf_name = customer_name + "_invoice_" + zoho.currentTime.toString("dd-MMM-yyyy_hh:mm");

  3. // Rename the file with the generated file name
  4. invoice_pdf.setFileName(generated_pdf_name);

Step 3:
  1. // contract variable holds the document fetched from Zoho Workdrive
  2. contract = invokeUrl
  3. [
  4. url: "https://workdrive.zoho.com/api/v1/download/5crsmXXXXXXXXXXXXXXXXXXXXXXXXXXXf16b8"
  5. type: GET
  6. connection: "workdrive_connection"
  7. ];

Step 4:
  1. // Generate the file name with customer name and current time. Here, customer_name is the input parameter of the custom function
  2. generated_doc_name = customer_name + "_contract_" + zoho.currentTime.toString("dd-MMM-yyyy_hh:mm");

  3. // Rename the file with the generated file name
  4. contract.setFileName(generated_doc_name);

Step 5:
  1. // Create a list to add files that need to be compressed
  2.  filesList = List();
  3.  filesList.add(invoice_pdf);
  4.  filesList.add(contract);

  5.  // Perform compress function
  6.  zip_file = filesList.compress("invoice");

Step 6:
  1. // Send email with the compressed file as attachment
  2. sendmail
  3. [
  4. from: zoho.loginuserid
  5. to: customer_email
  6. subject: "Invoice"
  7. message: "Please check attachment to find your invoice "
  8. attachments: file:  zip_file
  9. ]

Example 2: Uses extract and getFileContent functions
The following example extracts .csv files from a .zip file and uploads the content of the extracted files into a Zoho Sheet worksheet:

Step 1:
  1. // Extract .csv files from .zip file. file_collection holds the extracted files as KEY-VALUE collection
  2. file_collection = compressed_file.extract(); 

Step 2:
  1. // Iterate through the collection to access individual .csv files
  2. for each file in file_collection
  3. {
  4. // Fetch the content of the extracted .csv file
  5. content = file.getFileContent();
  6. // Use Sheet integration task to insert the fetched CSV into the specified Zoho Sheet
  7. response = zoho.sheet.insertCSV("6fbyeXXXXXXXXXXXXXXXXXXXXXXXXXXX44b56", "Sheet1", content);
  8. }

Learn more about file functions from our help documents and do let us know your questions and suggestions in the comments.


      • Sticky Posts

      • Function #41: Sync Associated Subforms!

        Welcome back everyone! The last custom function showed how to update a Contact with Product details from it's Related list in Deals. This week, let's look at a function that lets you update subform records in two modules simultaneously when one of them is updated. Business scenario Let's look at how subform helps in an education institution that has deployed Zoho CRM. National Public School, Austin (made up, of course!) has set up Zoho CRM and it follows the same relationship pattern of "Students",

        • Recent Topics

        • Power up your Kiosk Studio with Real-Time Data Capture, Client Scripts & More!

          Hello Everyone, We’re thrilled to announce a powerful set of enhancements to Kiosk Studio in Zoho CRM. These new updates give you more flexibility, faster record handling, and real-time data capture, making your Kiosk flows smarter and more efficient
        • How do you print out the invoices comments

          I have some invoices where i need to print out the comments that show when reminders and etc were sent how do we print those out in Zoho Books.
        • Unable to load a specific image

          Hi I am trying to upload an svg file, which reports that there is "a problem with the file", but does not say what sort of problem. I can't find anything which says which files are supported, so it may be it does not support svg. (which would be a real shame) The file itself will open in either Firefox or Chrome without problem. For the moment I am using a png file, which does not zoom well of course. David
        • Why does the Address field show the wrong map location even with a correct Pincode?

          I am noticing an issue with the Address field map in Zoho Creator. When I enter a city name that exists in multiple locations within the same state, the map sometimes points to the wrong area even if I have entered the correct Pincode. Currently, it seems
        • Books <-> CRM synchronisation with custom Fields

          Hello, We are synchronising Books Customers with CRM Accounts. In CRM Accounts I set up last year a "segments" multiselect field shown below In Books, I set up a custom multi-select field with the same value as in the CRM And set up the synchronisation inside Books. Want to synchronise the Books Segments with the CRM Segments, but the later doesn't exist, and another non-existing is there ?! First, I don't understand where the field Segmentation is coming from. Second, I set CRM Segmentation to sync
        • CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users

          Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
        • Archive Option in Conversation View

          Hello, I have a suggestion\request to add an "Archive Thread" button in conversation view of Zoho Mail. The best suggestion I have is to put an "Archive Thread" button next to the "Label Entire Thread" button in conversation view. Most users don't just
        • Outlook/Hotmail Blocking Zoho SMTP IPs (S3150)

          We are currently facing a serious deliverability issue with Zoho SMTP while sending transactional OTP emails for our production application. Emails sent to Outlook / Hotmail addresses are being rejected with the following error: 550 - 5.7.1 Unfortunately,
        • Outlook is blocking incoming mail

          Outlook is blocking all emails sent from the Zoho server. ERROR CODE :550 - 5.7.1 Unfortunately, messages from [136.143.169.51] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). It looks
        • Track Marketing Automation Campaigns in Zoho CRM

          Hello, I've been searching but haven't found the exact answer to this question. I am looking to track Marketing Automation email campaigns and activities inside of Zoho CRM. Use Case: Action: Prospect Submits A Lead Form Outcomes: Prospect created in
        • Zoho Social API for generating draft posts from a third-party app ?

          Hello everyone, I hope you are all well. I have a question regarding Zoho Social. I am developing an application that generates social media posts, and I would like to be able to incorporate a feature that allows saving these posts as drafts in Zoho Social.
        • Temporarily rate limited due to IP reputation.

          We have suddenly started receiving the following Mail Delivery Status Notification: Diagnostic-Code: 4.7.650 The mail server [136.143.184.12] has been temporarily rate limited due to IP reputation. For e-mail delivery information, see https://aka.ms/postmaster
        • Incorrect Functioning of Time Logs API (Version 3)

          We need to fetch the list of time logs for each task for our company internal usage. We are trying to achieve it by using the next endpoint: https://projects.zoho.com/api-docs#bulk-time-logs#get-all-project-time-logs Firstly, in the documentation the
        • IMPORTANT: It doesn´t search for letters with portuguese characters.

          Some of my articles have for example the word "vídeo". But if I search for "vídeo" it doesn´t find them. If I search for "video" it does find them. Idealy, it should find the articles either way. But if I have to choose, it would be better to find the
        • IMPORTANT: It doens´t show full article name on search - Should add line break

          When we search for articles, it doesn´t show the full name. There should be a line break so the user can see the full article name, otherwise the user can´t know if that´s the article he/she is looking for. This is very important, otherwise the user has
        • Zoho Books - Payment Gateway - Revolut

          Hi Books Team, My feature request if to include the popular platform Revolut as a payment collection option on invoices in Zoho Books. Please upvote if you are also looking for this option.
        • Zoho Books | Product updates | January 2026

          Hello users, We’ve rolled out new features and enhancements in Zoho Books. From e-filing Form 1099 directly with the IRS to corporation tax support, explore the updates designed to enhance your bookkeeping experience. E-File Form 1099 Directly With the
        • Kaizen #233 - Generating AI-powered Follow-up Emails Using CRM Functions and Widgets

          Hey everyone! Welcome back to another interesting post in the Kaizen series! Sales teams regularly capture interaction notes in CRM after speaking with prospects. However, drafting a follow-up email that reflects the conversation context can be repetitive
        • Connect Bank in Zoho Books

          Can I connect UOB or Ariwallex in Zoho Books?
        • Using MPN across multiple SKUs and inventory tracking

          I have several different SKU's that share a common MPN and would like to track inventory by MPN. SKU1 has MPN1 assigned SKU2 has MPN1 assigned Here is an example If I start with 5 of MPN 1 in stock I want each SKU1 and SKU2 to show as 5 in stock, If I
        • Extend Zoho Canvas Customization to Zoho Creator Forms and Reports

          Currently, Zoho Canvas allows users to design and customize the UI of Zoho CRM modules with a much better visual experience. This helps organizations create cleaner layouts, improve usability, and design interfaces that match their workflows. However,
        • Marketing Tip #1: Optimize item titles for SEO

          Your item title is the first thing both Google and shoppers notice. Instead of a generic “Leather Bag,” go for something detailed like “Handcrafted Leather Laptop Bag – Durable & Stylish.” This helps your items rank better in search results and instantly
        • Feature Enhancement Request – Text Formatting Options in Item Description (Zoho Books/Quotes Module)

          Dear Zoho Development Team, Greetings from Radiant360 Integrated Technical Services LLC. We would like to bring to your attention a functional limitation we've encountered within the Item Table / Quote Description section of Zoho Books (and Zoho CRM Quotes).
        • ZOHO Books Query

          Good day, Can someone please advise. I recently migrated from ZOHO Invoice to ZOHO Books. No that I want to use the inventory on Books I cant as all my items have transaction history. The person I spoke to at ZOHO said I need to create a new Company profile
        • Best way to schedule bill payments to vendors

          I've integrated Forte so that I can convert POs to bills and make payments to my vendors all through Books. Is there a way to schedule the bill payments as some of my vendors are net 30, net 60 and even net 90 days. If I can't get this to work, I'll have
        • ZOHO.CRM.UI.Record.open not working properly

          I have a Zoho CRM Widget and in it I have a block where it will open the blocks Meeting like below block.addEventListener("click", () => { ZOHO.CRM.UI.Record.open({ Entity: "Events", RecordID: meeting.id }).catch(err => { console.error("Open record failed:",
        • inventory removal at packing list or shipment.

          currently our system is set to remove inventory at invoice. This is creating an inventory nightmare? Is it possible to change the settings to remove the item from inventory at either the packing slip stage or shipping the item.
        • How to add employee and not invite them to log in?

          I want to add 50 employees, but invite them only when everything will be configured and ready. Is it possible? Should we create employee profiles and then convert them later? Thank you,
        • How is Your eCommerce Experience w/Zoho Inventory?

          First off, I'm SUPER grateful for the advent of Zoho Inventory and now the Zoho Commerce Suite. Overall, Inventory is a great product, especially for customers without an eCommerce presence. For eCommerce companies (especially those shipping more than ~10 packages/day), however, there are certain drawbacks that keep my clients from moving over to Zoho Inventory: Cons: 1. Invoice + Package Creation from Shopify/Other eCommerce Integrations: Zoho Inventory makes the somewhat perplexing decision to
        • Ability to Use Both AND and OR When Creating Rules (Advanced Conditions)

          I'd like to be able to use more complicated logic when setting up rules. E.g. in Zoho Mail, I can choose "Advanced conditions (AND/OR) to create a rule that can be applied to multiple subject lines from the same sender. But in Zoho TeamInbox, I will have
        • Zoho Desktop App- Unable to Minimize/Freezes

          I'm having issues with my Zoho Mail desktop app (PC). When go on my desktop and open the app this is what happens: - Unable to minimize and close app (in the screenshot attached you can see at the top right there is no option to minimize/close) - Unable
        • Zoho Invoice Zapier Integration

          Is there still a way to use Zapier with Zoho Invoice? I've read online that that migrated to Zoho Books or Billing but since I am just using Invoice I can not find a Zapier Connection anymore.
        • Conect chat of salesiq with zoho cliq

          Is there any way to answer from zoho cliq the chat of salesiq initiated by customers?
        • Bug: OAuth 2.0 State Parameter fails with Pipe Delimiters (RFC 6749 Non-Compliance)

          I've discovered a bug in how Zoho's API Console handles the OAuth 2.0 authorization flow when the state parameter contains pipe characters (|), and I'm hoping the Zoho team can address this in a future update. The Issue Zoho's OAuth 2.0 implementation
        • Zobot with Plugs

          Hello, I am having a problem with Zobot using Plugs. Here is my current flow: When I run the flow, I should immediately see the messages from the initial cards (Send Message cards), then after running the plug, and finally, see the messages after the
        • Print a document from Zoho Writer via Zoho Creator

          If i use the code below i can get writer to create a new document or email it to me but i want to be able to print it directly from the browser and not have to send it via email and then print. Below is the code im using. Attached options form zoho writer
        • Training for How can i Operate the Software Features

          need to Help for Training of the ZOHO Billing Software
        • Automating Vendor Contract Management between Zoho Contracts and Zoho Books using Zoho Flow

          Managing vendor agreements across procurement and finance systems often requires manually downloading executed contracts and attaching them to vendor records. This can become time-consuming and difficult to manage when dealing with a large number of contracts.
        • Problem applying batch operation error keeps looping that error

          Problem applying batch operation error keeps looping that error an wont login
        • Shared Email Sending Duplicate Copies of Emails

          Hi there, We recently have moved our info@ email to Team Inbox to trial. We set this channel up using the Microsoft setup which works fine and have 3 users. I am wanting to know: 1. When I send a new email, it will create a copy of that email and send
        • Next Page