---
title: "Company email"
description: "Company email"
---

`email_send` takes `to`, 1–20 addresses, `subject`, Markdown `body` and optional `fileIds`, a list of objects with `fileId` and optional `version`. Without a version it uses the current edition. The sender appears as "Ana via Siglata" on `mail.siglata.com`; replies go to Ana's email. There is no approval step. The result includes `sendId` and each recipient's state. `subject` accepts up to 200 characters and `body` up to 200,000. Repeating the same call creates a new send; check the states before retrying. Refusals retain subject and reason without the body.

After provider acceptance, a failure to persist the result does not fail `email_send`: it returns the accepted recipients with `providerMessageId` and records `SettlementFailed` in activity. Do not repeat the send for this reason. Delivery or bounce events reconcile pending sends when the provider ID matches. The five-minute maintenance routine marks sends in progress for more than 15 minutes as `failed` with reason `outcome_unknown`, without refunding the daily cap: the email may have been accepted.

Recipients must be company members or records in the bound Contatos table. An unknown address refuses the entire send with `recipient_unknown` and a hint to add it to Contatos. Sending can also be refused when disabled, when the daily cap is reached or for suppression, with reason `unsubscribed`, `hard_bounce` or `complaint`. Refusals remain in history. The default cap is 200 messages per company per São Paulo day, counting one per recipient; Siglata staff can change it with `organization_limits_set({ dailyEmails })`.

Only files the person can read are sent. Up to 3 MiB of raw attachments, files are attached. Above that, or if the serialized message exceeds 5 MiB, all files become recipient links valid for seven days. Every email includes unsubscribe, including one-click headers. There is no tracking pixel.

`email_history` shows your own sends; owners, admins and Siglata staff see the organization's sends. Filter by `recipient`, `state`, inclusive `since` and exclusive `until`, using ISO dates. `limit` accepts 1–100, default 50; pass `continuation` to continue. Each row includes a body excerpt of at most 2,000 characters, files, `reason`, the provider identifier for delivery verification and `fileOpenedAt`, the first opening of a file link. Pass `id` to read one message's full body. States are `queued`, `sent`, `delivered`, `bounced`, `refused` and `failed`.

`email_settings_set` takes only `enabled`. Configure `contactsTableId` and `contactsEmailPointer` with `channel_set`, using the same binding as WhatsApp. `email_suppression_clear` takes `address` and is available only to Siglata staff.

## Email provider suppression [#email-provider-suppression]

Agent emails use `mail.siglata.com`. The mail provider's suppression list is shared across organizations using that domain. The provider can therefore refuse an address even when it is absent from your company's suppression list in Siglata.

When this happens, the send is recorded as failed. The message says that the provider suppresses the address and that the send failed and was not counted toward the company's daily limit. Siglata's suppression list remains specific to each company; clearing it does not clear the provider's suppression.
