Upload Attachment

zoho_crm.upload_attachment
ActionCRM & salesconnection required

Calls the Zoho CRM API with the connection's credentials.

Attach a file to one Zoho CRM record, either by uploading its bytes or by handing Zoho a link to fetch.

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
Zoho CRM
Secret shape
{"client_id": "…", "client_secret": "…", "refresh_token": "…"}
Config it needs
data_center, api_domain, accounts_url, api_version
Resolved by
config.connection_id, else node.connection_id

Configuration

8 fields, 3 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
module
API name of the module to act on, such as Leads, Contacts, Accounts, Deals, Tasks, Products, Vendors or Invoices. A custom module's API name works too.
stringYes——Leads
record_id
The id of the record to act on, as returned by a create, search or list node.
stringYes———
file_name
The file name Zoho stores the attachment under. Required whenever file_content is set: it is the name in the multipart upload.
stringYes—only with file_contentquote.pdf
file_content
The file itself: plain text, or a base64 blob from an upstream file node when content_encoding is base64.
stringNo———
content_encoding
How file_content is encoded. Use base64 for anything that is not plain text.
stringNotextone of "text", "base64"—
content_type
MIME type recorded for the upload; defaults to application/octet-stream.
stringNo——application/pdf
attachment_url
A public URL for Zoho to attach as a link instead of uploading bytes. Cannot be combined with file_content.
stringNo—url format—
title
Title for an attachment link; ignored for an uploaded file.
stringNo———
  • At least one of attachment_url, file_content must be set.

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "content_encoding": "text",
  "content_type": "application/pdf",
  "file_name": "quote.pdf",
  "module": "Leads"
}

Output

One shape.

result

FieldTypeExample
module
The module API name the batch was written to.
string—
action
Which write this was, for example create or upsert.
string—
records
One status object per input record, in input order.
array—
succeeded
The status objects Zoho accepted, each with its new id.
array—
failed
The status objects Zoho refused, each with its error code.
array—
ids
The ids of the records Zoho wrote, in order.
array—
success_count
How many records of the batch Zoho wrote.
number—
failure_count
How many records of the batch Zoho refused.
number—
status
success when every record was written, partial when some were refused.
stringsuccess
record_id
The record the attachment was added to.
string—
{
  "action": "",
  "failed": [],
  "failure_count": 0,
  "ids": [],
  "module": "",
  "record_id": "",
  "records": [],
  "status": "success",
  "succeeded": [],
  "success_count": 0
}

Notes

  • One call carries a file or a link, never both. A link needs nothing else; uploading bytes also needs a file_name.
  • The file travels through the run as a base64 string, so keep it small enough for the inline binary limit.

See Upload Attachment run in a workflow.

In a technical demo we add the Zoho CRM connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.