Skip to content

Zoho: Associate Email

Zoho associateEmail.associateEmail: arguments, response, policy and SDK examples.

← Associate email operations · Get started

Operation zoho.associateemail

Provider route: POST /crm/v8/{module}/{recordId}/actions/associate_email. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/zoho with npm, or alter-sdk-zoho with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { ZohoIntegration } from "@alter-ai/zoho";
async function execute(input: Parameters<ZohoIntegration["associateEmail"]["associateEmail"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new ZohoIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.associateEmail.associateEmail(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_zoho import ZohoIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = ZohoIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.associate_email.associate_email(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.modulestringRequired within parentMaximum length: 100
path.recordIdstringRequired within parentMaximum length: 100
bodyModelRequired within parentExpand Associate Email — request body — body

Referenced models: Associate Email — request body — body

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Associate Email — response body

Referenced models: Associate Email — response body

Associate Email — request body — body
FieldTypePresenceDescription and constraints
$objectRootRequest body for associating an email with a record.
Additional keys: not allowed
dataarrayRequired within parentList of email objects to associate with the record.
Maximum items: 50
Minimum items: 1
data[]ModelEach itemExpand Associate Email — request body — body data item

Referenced models: Associate Email — request body — body data item

Associate Email — response body
FieldTypePresenceDescription and constraints
$objectRootGeneric wrapper for multiple record action responses.
Additional keys: not allowed
EmailsarrayOptionalArray of result statuses for each email association operation.
Maximum items: 50
Emails[]objectEach itemIndividual result for a specific email association.
Additional keys: not allowed
Emails[].codestringOptionalStatus code indicating the result of the operation. Possible values:SUCCESS, ERROR.
Known values: SUCCESS
Maximum length: 50
Emails[].detailsobjectOptionalContextual details about the operation result.
Additional keys: not allowed
Emails[].details.message_idstringRequired within parentThe original message ID of the email that was processed.
Maximum length: 255
Emails[].messagestringOptionalHuman-readable message describing the operation result.
Maximum length: 255
Emails[].statusstringOptionalOperation status. Possible values:success, error.
Known values: success
Maximum length: 50
Associate Email — request body — body data item
FieldTypePresenceDescription and constraints
$objectRootDetailed email metadata object for association.
Additional keys: not allowed
attachmentsarrayOptionalList of attachments associated with the email. Use the [Files API](files.yaml#$.paths./files.get) to retrieve attachment IDs.
Maximum items: 20
attachments[]ModelEach itemExpand Associate Email — request body — body data item attachments item
bccarrayOptionalBlind carbon copy recipients of the email.
Maximum items: 50
bcc[]ModelEach itemExpand Associate Email — request body — body data item from
ccarrayOptionalCarbon copy recipients of the email.
Maximum items: 50
cc[]ModelEach itemExpand Associate Email — request body — body data item from
contentstringRequired within parentThe email body content.
Maximum length: 32000
date_timestringRequired within parentThe timestamp of the email (ISO 8601 format).
Format: date-time
Maximum length: 50
fromModelRequired within parentExpand Associate Email — request body — body data item from
mail_formatstringOptionalThe format of the email content.
Default: text
One of: text, html
original_message_idstringRequired within parentThe unique identifier of the email from the mail server. This is used to prevent duplicate email associations.
Maximum length: 255
sentbooleanRequired within parentIndicates whether the email was sent (true) or received (false) by the CRM user.
subjectstringRequired within parentThe subject line of the email.
Maximum length: 500
toarrayRequired within parentPrimary recipients of the email.
Maximum items: 50
to[]ModelEach itemExpand Associate Email — request body — body data item from

Referenced models: Associate Email — request body — body data item attachments item, Associate Email — request body — body data item from

Associate Email — request body — body data item attachments item
FieldTypePresenceDescription and constraints
$objectRootReference to an email attachment.
Additional keys: not allowed
idstringRequired within parentThe attachment ID. Use the [Files API](files.yaml#$.paths./files.get) to retrieve attachment IDs.

Maximum length: 100
Associate Email — request body — body data item from
FieldTypePresenceDescription and constraints
$objectRootObject representing an email address and display name.
Additional keys: not allowed
emailstringRequired within parentThe actual email address.
Format: email
Maximum length: 255
user_namestringOptionalThe display name of the email recipient or sender.
Maximum length: 255

SDK function policy ID: zoho.associateemail. Catalog operation: associateEmail. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.