Skip to content
Connect an agent

Organisations

Set up or change one email connector

Sends the organisation's email through its own provider from an address on a domain it verified, one connector a provider.

PUT/orgs/{org}/connectors/email/{provider}

TL;DR

QuestionAnswer
What does it do?Set up or change one email connector.
What does it take?A JSON body of type SetOrgEmailConnectorBody.
What does it return?Status 200 with a body of type OrgConnectors.
What can go wrong?400 the body is not valid, or the token is required (connectors.token_required); 401 not signed in; 403 not the owner or an admin, the plan has no connectors (plan.connectors_not_included), or the origin may not make changes; 404 no such organisation, the caller is not a member of it, or no connector for that provider; 422 the From domain is not verified (connectors.domain_unverified); 429 too many requests; 503 this server cannot keep a token (connectors.unavailable). Every failure uses the one error envelope.

What it does

Sends the organisation's email through its own provider from an address on a domain it verified, one connector a provider. The token is sealed with the organisation's own data key and never answered. Enterprise only.

Path parameters

FieldTypeRequiredDescription
orgstringyesThe organisation's id or its slug.
provider"resend" | "sendgrid" | "postmark" | "mailgun" | "brevo"yesThe email provider: resend, sendgrid, postmark, mailgun or brevo.

Request body

The body has the type SetOrgEmailConnectorBody.

FieldTypeRequiredDescription
tokenstringnoThe provider's API token. Required for a new connector; left out, the stored one is kept. at least 8 characters; at most 500 characters.
fromEmailstringyesat least 3 characters; at most 254 characters; pattern ^[^\s@]+@[^\s@]+\.[^\s@]+$.
fromNamestring | nullnoat most 80 characters.
replyTostring | nullnoat least 3 characters; at most 254 characters; pattern ^[^\s@]+@[^\s@]+\.[^\s@]+$.
region"us" | "eu" | nullno
enabledbooleanno
makeDefaultbooleannoMake it the default. The organisation's first connector is the default whatever this says.

Responses

StatusMeaningBody
200The organisation's connectors now.OrgConnectors
400The body is not valid, or the token is required (connectors.token_required).ErrorResponse
401Not signed in.ErrorResponse
403Not the owner or an admin, the plan has no connectors (plan.connectors_not_included), or the origin may not make changes.ErrorResponse
404No such organisation, the caller is not a member of it, or no connector for that provider.ErrorResponse
422The From domain is not verified (connectors.domain_unverified).ErrorResponse
429Too many requests.ErrorResponse
503This server cannot keep a token (connectors.unavailable).ErrorResponse

Response body

A 200 answer has the type OrgConnectors.

FieldTypeRequiredDescription
availablebooleanyesWhether the plan has connectors: Enterprise.
planstringyes
domainsstring[]yesThe domains the organisation verified, which a From address must be on.
emailOrgEmailConnector[]yesThe email connectors, at most one a provider: the default first, then in the order they were added.
email[].provider"resend" | "sendgrid" | "postmark" | "mailgun" | "brevo"yes
email[].fromEmailstringyes
email[].fromNamestring | nullyes
email[].replyTostring | nullyes
email[].region"us" | "eu" | nullyesMailgun's region; null for every other provider.
email[].tokenLast4stringyesThe last four characters of the token. The token itself is never answered.
email[].enabledbooleanyes
email[].isDefaultbooleanyesWhether it is the default, the connector tried first. At most one is.
email[].testedAtinteger | nullyes
email[].lastErrorstring | nullyesWhy the last email through it failed, in our words, or null.
email[].lastErrorAtinteger | nullyes
email[].keyVersionintegeryesThe version of the organisation's data key the token is sealed with.
email[].updatedAtintegeryes
defaultProvider"resend" | "sendgrid" | "postmark" | "mailgun" | "brevo" | nullyesThe provider tried first, or null when there is no connector.

See also

DocWhy
API referenceEvery endpoint, and the error envelope
SchemasEvery request and response type
Tool referenceThe operations as callable tools