Email template API
- Base URL:
https://email-template.sls.epilot.io - Full API Docs: https://docs.epilot.io/api/email-template
Usageโ
import { epilot } from '@epilot/sdk'
epilot.authorize(() => '<token>')
const { data } = await epilot.emailTemplate.saveTemplate(...)
Tree-shakeable importโ
import { getClient, authorize } from '@epilot/sdk/email-template'
const emailTemplateClient = getClient()
authorize(emailTemplateClient, () => '<token>')
const { data } = await emailTemplateClient.saveTemplate(...)
Operationsโ
Email templates
Variables
Schemas
BaseEntityEmailTemplateRequestEmailTemplateEntityAttachmentFromToPresignedRequestPresignedResponseAttachmentResponseUserResponseVariableParametersTemplateTypeEmailTemplateResponseAsyncEmailTemplateResponseSkipCreatingEntitiesBulkSendMessageRequestBulkSendMessageRequestWithQueryCustomVariablesBulkSendMessageJobCreateSystemTemplatesReqCreateSystemTemplatesRespOrgIdCreatedByCreatedAtUpdatedAtApprovedAtApproveActionTaskToken
saveTemplateโ
Create or update a template. If id is provided, it will update the template.
POST /v1/email-template/templates
const { data } = await client.saveTemplate(
null,
{
_id: 'cd7809ba-a111-4dd9-8d15-18eb4de0faed',
_tags: ['template'],
_manifest: ['123e4567-e89b-12d3-a456-426614174000'],
_purpose: ['a0ec23ac-12f8-4d89-9a63-91cba3787f2a', '310cd388-2f15-4b5b-8f98-ca14c1e03304'],
name: 'Order confirmation',
brand_id: 0,
from: {
name: 'epilot',
email: 'no-reply@epilot.cloud'
},
to: [
{
name: 'Ny Huynh',
email: 'ny.huynh@axonactive.com'
}
],
cc: [
{
name: 'Ny Huynh',
email: 'ny.huynh@axonactive.com'
}
],
bcc: [
{
name: 'Ny Huynh',
email: 'ny.huynh@axonactive.com'
}
],
subject: 'We have received your order!',
body: 'Hi Ms Ny Huynh, </br> Thank you for your order. We will contact you shortly',
attachments: [
{
cid: 'f820ce3b-07b0-45ae-bcc6-babb2f53f79f',
filename: 'Produktinformationen_epilot360_Double_Opt_in.pdf',
size: 451349,
content_type: 'application/pdf',
url: 'https://go.epilot.cloud/attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf',
bucket: '893487340562-message-attachment',
object_key: 'attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf',
inline: false,
send_as_link: false,
type: 'Document template',
copy_to_message: true
}
],
file: {
$relation: [
{}
]
},
system_template: false,
created_by: 1234,
updated_by: 1234
},
)
Response
{
"_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"_title": "string",
"_org": "206801",
"_schema": "message",
"_tags": ["automatic email template"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-10T09:14:31.990Z",
"_purpose": ["a0ec23ac-12f8-4d89-9a63-91cba3787f2a", "310cd388-2f15-4b5b-8f98-ca14c1e03304"],
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"],
"name": "Order confirmation",
"brand_id": 0,
"from": {
"name": "epilot",
"email": "no-reply@epilot.cloud"
},
"to": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"cc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"bcc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"subject": "We have received your order!",
"body": "Hi Ms Ny Huynh, </br> Thank you for your order. We will contact you shortly",
"attachments": [
{
"cid": "f820ce3b-07b0-45ae-bcc6-babb2f53f79f",
"filename": "Produktinformationen_epilot360_Double_Opt_in.pdf",
"size": 451349,
"content_type": "application/pdf",
"url": "https://go.epilot.cloud/attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"bucket": "893487340562-message-attachment",
"object_key": "attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"inline": false,
"send_as_link": false,
"type": "Document template",
"copy_to_message": true
}
],
"file": {
"$relation": [
{}
]
},
"created_by": 1234,
"updated_by": 1234,
"system_template": false
}
getTemplateDetailโ
Get email template by ID
GET /v1/email-template/templates/{id}
const { data } = await client.getTemplateDetail({
id: '123e4567-e89b-12d3-a456-426614174000',
})
Response
{
"entity": {
"_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"_title": "string",
"_org": "206801",
"_schema": "message",
"_tags": ["automatic email template"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-10T09:14:31.990Z",
"_purpose": ["a0ec23ac-12f8-4d89-9a63-91cba3787f2a", "310cd388-2f15-4b5b-8f98-ca14c1e03304"],
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"],
"name": "Order confirmation",
"brand_id": 0,
"from": {
"name": "epilot",
"email": "no-reply@epilot.cloud"
},
"to": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"cc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"bcc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"subject": "We have received your order!",
"body": "Hi Ms Ny Huynh, </br> Thank you for your order. We will contact you shortly",
"attachments": [
{
"cid": "f820ce3b-07b0-45ae-bcc6-babb2f53f79f",
"filename": "Produktinformationen_epilot360_Double_Opt_in.pdf",
"size": 451349,
"content_type": "application/pdf",
"url": "https://go.epilot.cloud/attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"bucket": "893487340562-message-attachment",
"object_key": "attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"inline": false,
"send_as_link": false,
"type": "Document template",
"copy_to_message": true
}
],
"file": {
"$relation": [
{}
]
},
"created_by": 1234,
"updated_by": 1234,
"system_template": false
},
"relations": [
{}
]
}
updateTemplateDetailโ
Update email template by ID
PUT /v1/email-template/templates/{id}
const { data } = await client.updateTemplateDetail(
{
id: '123e4567-e89b-12d3-a456-426614174000',
},
{
_id: 'cd7809ba-a111-4dd9-8d15-18eb4de0faed',
_tags: ['template'],
_manifest: ['123e4567-e89b-12d3-a456-426614174000'],
_purpose: ['a0ec23ac-12f8-4d89-9a63-91cba3787f2a', '310cd388-2f15-4b5b-8f98-ca14c1e03304'],
name: 'Order confirmation',
brand_id: 0,
from: {
name: 'epilot',
email: 'no-reply@epilot.cloud'
},
to: [
{
name: 'Ny Huynh',
email: 'ny.huynh@axonactive.com'
}
],
cc: [
{
name: 'Ny Huynh',
email: 'ny.huynh@axonactive.com'
}
],
bcc: [
{
name: 'Ny Huynh',
email: 'ny.huynh@axonactive.com'
}
],
subject: 'We have received your order!',
body: 'Hi Ms Ny Huynh, </br> Thank you for your order. We will contact you shortly',
attachments: [
{
cid: 'f820ce3b-07b0-45ae-bcc6-babb2f53f79f',
filename: 'Produktinformationen_epilot360_Double_Opt_in.pdf',
size: 451349,
content_type: 'application/pdf',
url: 'https://go.epilot.cloud/attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf',
bucket: '893487340562-message-attachment',
object_key: 'attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf',
inline: false,
send_as_link: false,
type: 'Document template',
copy_to_message: true
}
],
file: {
$relation: [
{}
]
},
system_template: false,
created_by: 1234,
updated_by: 1234
},
)
Response
{
"_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"_title": "string",
"_org": "206801",
"_schema": "message",
"_tags": ["automatic email template"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-10T09:14:31.990Z",
"_purpose": ["a0ec23ac-12f8-4d89-9a63-91cba3787f2a", "310cd388-2f15-4b5b-8f98-ca14c1e03304"],
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"],
"name": "Order confirmation",
"brand_id": 0,
"from": {
"name": "epilot",
"email": "no-reply@epilot.cloud"
},
"to": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"cc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"bcc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"subject": "We have received your order!",
"body": "Hi Ms Ny Huynh, </br> Thank you for your order. We will contact you shortly",
"attachments": [
{
"cid": "f820ce3b-07b0-45ae-bcc6-babb2f53f79f",
"filename": "Produktinformationen_epilot360_Double_Opt_in.pdf",
"size": 451349,
"content_type": "application/pdf",
"url": "https://go.epilot.cloud/attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"bucket": "893487340562-message-attachment",
"object_key": "attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"inline": false,
"send_as_link": false,
"type": "Document template",
"copy_to_message": true
}
],
"file": {
"$relation": [
{}
]
},
"created_by": 1234,
"updated_by": 1234,
"system_template": false
}
replaceVariablesAsyncโ
This endpoint allows to initiate an asynchronous process in replacing the template details & generating the documents. On initial request, a jobId and STARTED status are returned. Subsequent requests
POST /v1/email-template/templates:replaceAsync
const { data } = await client.replaceVariablesAsync(
{
job_id: 'example',
},
{
email_template_id: '511ceb90-f738-47aa-8b1e-915ace0ae13c',
variable_parameters: {
template_type: 'email',
language: 'en',
main_entity_id: '63753437-c9e2-4e83-82bb-b1c666514561',
user_id: '123452',
custom_variables: [
{
variable: '{{abc.xyz}}',
value: 'ReplacedValue'
}
]
},
must_include_unsubscribe_link: false,
skip_document_generation: false
},
)
Response
{
"job_id": "8c086140-f33e-4bb7-a993-50c0f2402c7b",
"status": "STARTED",
"message": "string",
"doc_progress_count": {
"total": 10,
"completed": 5
},
"result": {
"entity": {
"_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"_title": "string",
"_org": "206801",
"_schema": "message",
"_tags": ["automatic email template"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-10T09:14:31.990Z",
"_purpose": ["a0ec23ac-12f8-4d89-9a63-91cba3787f2a", "310cd388-2f15-4b5b-8f98-ca14c1e03304"],
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"],
"name": "Order confirmation",
"brand_id": 0,
"from": {
"name": "epilot",
"email": "no-reply@epilot.cloud"
},
"to": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"cc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"bcc": [
{
"name": "Ny Huynh",
"email": "ny.huynh@axonactive.com"
}
],
"subject": "We have received your order!",
"body": "Hi Ms Ny Huynh, </br> Thank you for your order. We will contact you shortly",
"attachments": [
{
"cid": "f820ce3b-07b0-45ae-bcc6-babb2f53f79f",
"filename": "Produktinformationen_epilot360_Double_Opt_in.pdf",
"size": 451349,
"content_type": "application/pdf",
"url": "https://go.epilot.cloud/attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"bucket": "893487340562-message-attachment",
"object_key": "attachments/3e7c616a-3e89-4f92-b4c5-ea5ab140e3dd/Produktinformationen_epilot360_Double_Opt_in.pdf",
"inline": false,
"send_as_link": false,
"type": "Document template",
"copy_to_message": true
}
],
"file": {
"$relation": [
{}
]
},
"created_by": 1234,
"updated_by": 1234,
"system_template": false
},
"relations": [
{}
]
}
}
bulkSendMessageโ
Send emails to multiple recipients using a template
POST /v1/email-template/templates:bulkSendMessage
const { data } = await client.bulkSendMessage(
null,
{
skip_creating_entities: true,
email_template_id: '511ceb90-f738-47aa-8b1e-915ace0ae13c',
must_include_unsubscribe_link: true,
recipient_query: '_schema:contact AND consent_email_marketing:active',
custom_variables: [
{
variable: '{{abc.xyz}}',
value: 'ReplacedValue'
}
]
},
)
Response
{
"org_id": "206801",
"job_id": "8c086140-f33e-4bb7-a993-50c0f2402c7b",
"skip_creating_entities": true,
"status": "PROCESSING",
"request": {
"skip_creating_entities": true,
"email_template_id": "511ceb90-f738-47aa-8b1e-915ace0ae13c",
"must_include_unsubscribe_link": true,
"recipient_ids": ["3fa85f64-5717-4562-b3fc-2c963f66afa6", "3fa85f64-5717-4562-b3fc-2c963f66afa7", "3fa85f64-5717-4562-b3fc-2c963f66afa8"],
"custom_variables": [
{
"variable": "{{abc.xyz}}",
"value": "ReplacedValue"
}
]
},
"created_by": "1234",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"approved_at": "1970-01-01T00:00:00.000Z",
"approve_action": "APPROVE_WITH_CONSENT",
"task_token": "8c086140-f33e-4bb7-a993-50c0f2402c7b",
"total_queued": 100,
"queued": [
{
"entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"email_to": ["recipient@example.com"],
"email_with_consent": ["recipient@example.com"]
}
],
"sent": [
{
"entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"email_to": ["recipient@example.com"]
}
],
"failed": [
{
"entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"error": "string",
"email_to": ["recipient@example.com"]
}
]
}
revertToOriginalTemplateโ
Revert to the original system generated email template
POST /v1/email-template/templates:revert
const { data } = await client.revertToOriginalTemplate(
null,
{
email_template_id: '511ceb90-f738-47aa-8b1e-915ace0ae13c'
},
)
Schemasโ
BaseEntityโ
type BaseEntity = {
_id: string
_title: string
_org: string
_schema: string
_tags?: string[]
_created_at: string // date-time
_updated_at: string // date-time
_purpose?: string[]
_manifest?: string // uuid[]
}
EmailTemplateRequestโ
type EmailTemplateRequest = {
_id?: string
_tags?: string[]
_manifest?: string // uuid[]
_purpose?: string[]
name: string
brand_id?: number
from?: {
name?: string
email: string
}
to?: Array<{
name?: string
email: string
}>
cc?: Array<{
name?: string
email: string
}>
bcc?: Array<{
name?: string
email: string
}>
subject: string
body?: string
attachments?: Array<{
cid?: string
filename: string
size: number
content_type: string
url?: string
bucket: string
object_key: string
inline?: boolean
send_as_link?: boolean
type?: string
copy_to_message?: boolean
}>
file?: {
$relation?: object[]
}
system_template?: boolean
created_by?: string
updated_by?: string
}
EmailTemplateEntityโ
type EmailTemplateEntity = {
_id: string
_title: string
_org: string
_schema: string
_tags?: string[]
_created_at: string // date-time
_updated_at: string // date-time
_purpose?: string[]
_manifest?: string // uuid[]
name: string
brand_id?: number
from?: {
name?: string
email: string
}
to?: Array<{
name?: string
email: string
}>
cc?: Array<{
name?: string
email: string
}>
bcc?: Array<{
name?: string
email: string
}>
subject?: string
body?: string
attachments?: Array<{
cid?: string
filename: string
size: number
content_type: string
url?: string
bucket: string
object_key: string
inline?: boolean
send_as_link?: boolean
type?: string
copy_to_message?: boolean
}>
file?: {
$relation?: object[]
}
created_by?: string
updated_by?: string
system_template?: boolean
}
Attachmentโ
type Attachment = {
cid?: string
filename: string
size: number
content_type: string
url?: string
bucket: string
object_key: string
inline?: boolean
send_as_link?: boolean
type?: string
copy_to_message?: boolean
}
Fromโ
type From = {
name?: string
email: string
}
Toโ
type To = {
name?: string
email: string
}
PresignedRequestโ
type PresignedRequest = {
id: string
filename: string
content_type: string
}
PresignedResponseโ
type PresignedResponse = {
download_url: string
upload_url: {
url: number
fields: object
}
}
AttachmentResponseโ
type AttachmentResponse = {
total?: number
attachments?: Array<{
filename?: string
bucket?: string
object_key?: string
url?: string
document_type?: number
}>
}
UserResponseโ
type UserResponse = {
id?: string
organization_id?: string
display_name?: string
email?: string // email
phone?: string
preferred_language?: string
image_uri?: {
original?: string // uri
thumbnail_32?: string // uri
}
properties?: Array<{
name: string
value: string
}>
}
VariableParametersโ
type VariableParameters = {
template_type: "email" | "document"
language?: "en" | "de"
main_entity_id?: string
user_id?: string
custom_variables?: Array<{
variable?: string
value?: string
}>
}
TemplateTypeโ
type TemplateType = "email" | "document"
EmailTemplateResponseโ
type EmailTemplateResponse = {
entity?: {
_id: string
_title: string
_org: string
_schema: string
_tags?: string[]
_created_at: string // date-time
_updated_at: string // date-time
_purpose?: string[]
_manifest?: string // uuid[]
name: string
brand_id?: number
from?: {
name?: { ... }
email: { ... }
}
to?: Array<{
name?: { ... }
email: { ... }
}>
cc?: Array<{
name?: { ... }
email: { ... }
}>
bcc?: Array<{
name?: { ... }
email: { ... }
}>
subject?: string
body?: string
attachments?: Array<{
cid?: { ... }
filename: { ... }
size: { ... }
content_type: { ... }
url?: { ... }
bucket: { ... }
object_key: { ... }
inline?: { ... }
send_as_link?: { ... }
type?: { ... }
copy_to_message?: { ... }
}>
file?: {
$relation?: { ... }
}
created_by?: string
updated_by?: string
system_template?: boolean
}
relations?: object[]
}
AsyncEmailTemplateResponseโ
type AsyncEmailTemplateResponse = {
job_id: string
status: "STARTED" | "PROCESSING" | "SUCCESS" | "FAILED"
message?: string
doc_progress_count?: {
total: number
completed: number
}
result?: {
entity?: {
_id: { ... }
_title: { ... }
_org: { ... }
_schema: { ... }
_tags?: { ... }
_created_at: { ... }
_updated_at: { ... }
_purpose?: { ... }
_manifest?: { ... }
name: { ... }
brand_id?: { ... }
from?: { ... }
to?: { ... }
cc?: { ... }
bcc?: { ... }
subject?: { ... }
body?: { ... }
attachments?: { ... }
file?: { ... }
created_by?: { ... }
updated_by?: { ... }
system_template?: { ... }
}
relations?: object[]
}
}
SkipCreatingEntitiesโ
When true, it lets to send only the email by skip creating the thread & message entities.
type SkipCreatingEntities = boolean
BulkSendMessageRequestโ
It takes a list of entity ids, treating each as a separate mainEntity to construct individual messages. For e.g; if there some opportunityIds are provided, then each opportunityId is treated as a separate mainEntity to construct individual messages.
type BulkSendMessageRequest = {
skip_creating_entities?: boolean
email_template_id: string
must_include_unsubscribe_link?: boolean
recipient_ids: string[]
custom_variables?: Array<{
variable?: string
value?: string
}>
}
BulkSendMessageRequestWithQueryโ
It takes an entity query to derive recipient_ids, treating each as a separate mainEntity to construct individual messages.
For e.g; if the query is provided as _schema:opportunity AND status:PENDING,
then all the opportunity Ids with status PENDING are treated as separate mainEntity to construct
type BulkSendMessageRequestWithQuery = {
skip_creating_entities?: boolean
email_template_id: string
must_include_unsubscribe_link?: boolean
recipient_query: string
custom_variables?: Array<{
variable?: string
value?: string
}>
}
CustomVariablesโ
Custom variables to be replaced in the email template
type CustomVariables = Array<{
variable?: string
value?: string
}>
BulkSendMessageJobโ
type BulkSendMessageJob = {
org_id?: string
job_id: string
skip_creating_entities?: boolean
status: "PROCESSING" | "QUEUEING" | "APPROVAL" | "SENDING" | "SUCCESS" | "FAILED" | "CANCELLED"
request: {
skip_creating_entities?: boolean
email_template_id: string
must_include_unsubscribe_link?: boolean
recipient_ids: string[]
custom_variables?: Array<{
variable?: { ... }
value?: { ... }
}>
} | {
skip_creating_entities?: boolean
email_template_id: string
must_include_unsubscribe_link?: boolean
recipient_query: string
custom_variables?: Array<{
variable?: { ... }
value?: { ... }
}>
}
created_by?: string
created_at?: string // date-time
updated_at?: string // date-time
approved_at?: string // date-time
approve_action?: "APPROVE_WITH_CONSENT" | "APPROVE_ALL"
task_token?: string
total_queued?: number
queued?: Array<{
entity_id: string
email_to: string[]
email_with_consent: string[]
}>
sent?: Array<{
entity_id: string
message_id: string
email_to?: string[]
}>
failed?: Array<{
entity_id: string
error: string
email_to?: string[]
}>
}
CreateSystemTemplatesReqโ
type CreateSystemTemplatesReq = {
template_names: string[]
}
CreateSystemTemplatesRespโ
type CreateSystemTemplatesResp = Array<{
_id: string
_title: string
_org: string
_schema: string
_tags?: string[]
_created_at: string // date-time
_updated_at: string // date-time
_purpose?: string[]
_manifest?: string // uuid[]
}>
OrgIdโ
Organization ID
type OrgId = string
CreatedByโ
User ID who created the bulk message action
type CreatedBy = string
CreatedAtโ
Time when the bulk message action was created
type CreatedAt = string // date-time
UpdatedAtโ
Time when the bulk message action was last updated
type UpdatedAt = string // date-time
ApprovedAtโ
Time when the bulk message action was last approved
type ApprovedAt = string // date-time
ApproveActionโ
Type of approval action for the bulk message request.
- APPROVE_WITH_CONSENT: Approve the bulk message request and send emails to queued recipients with consent
- APPROVE_ALL: Approve the bulk message request and send emails to all queued recipients, including those without consent
type ApproveAction = "APPROVE_WITH_CONSENT" | "APPROVE_ALL"
TaskTokenโ
Task token to approve or cancel the bulk message action
type TaskToken = string