Chimes
Chimes are the SMS and email messages your business sends through Inttegro: receipts, delivery updates, reminders, and other customer notifications. Send one message now, schedule it for later, or broadcast it to an audience, then use its delivery status when a customer needs help. For one-time passwords, use the OTP API instead.
The chime object
A Chime is one notification for one recipient. It records the message, recipient, sender, and delivery status.
Properties
- Name
createdAt- Type
Date- Required
- required
- Description
When this Chime was created for delivery.
customDataCustomDataClick or tap to expandYour own key-value string pairs for custom data and tracking. Store user IDs, session identifiers, campaign tags, or any context you need for reconciliation and analytics.
emailChimeEmailMessageEmail content and safety scan result. Present when the Chime is sent by email.Click or tap to expand- Name
from- Type
ChimeEmailAddress
- Name
headers- Type
MessageHeaders
View headers detailsClick or tap to expand
Additional email headers after validation.- Name
html- Type
string | null- Description
- HTML body before delivery-specific rendering.
- Name
replyTo- Type
ChimeEmailAddress
View safety attributesClick or tap to expand
Result of the email content safety scan.- Name
contentHash- Type
string- Description
- Hash of the content that was scanned.
View links attributesClick or tap to expand
Links found while scanning the message.- Name
host- Type
string- Description
- Host name, when one is present.
- Name
raw- Type
string- Description
- Link exactly as it appeared in the message.
- Name
reason- Type
string- Description
- Reason for the link decision, when available.
- Name
scheme- Type
string- Description
- URL scheme.
- Name
status- Type
string- Description
Inttegro.ContentSafetyStatuses.Allowed,Inttegro.ContentSafetyStatuses.Rejected, orInttegro.ContentSafetyStatuses.Quarantined.
- Name
normalizedText- Type
string- Description
- Normalized plain-text body used by the scan.
- Name
quarantineNotes- Type
string- Description
- Additional context when content is quarantined.
- Name
reasonCodes- Type
string[]- Description
- Machine-readable reasons for a non-allowed result.
- Name
sanitizedHtml- Type
string- Description
- Sanitized HTML used for delivery, when available.
- Name
scanner- Type
string- Description
- Safety scanner that produced the result.
- Name
schema- Type
JSONData
View schema attributesClick or tap to expand
Schema.org markup generated for supported messages.View json_ld detailsClick or tap to expand
Schema.org JSON-LD inserted into the HTML email.- Name
kind- Type
string union- Description
Inttegro.ChimeEmailSchemaKinds.GmailViewAction,Inttegro.ChimeEmailSchemaKinds.SchemaOrgInvoice, orInttegro.ChimeEmailSchemaKinds.SchemaOrgOrder.
- Name
subject- Type
string- Description
- Email subject.
- Name
text- Type
string- Description
- Plain-text email body.
- Name
fullMessage- Type
string- Required
- required
- Description
Rendered SMS content. This is an empty string for email Chimes, whose content is returned in the
emailobject instead.
- Name
id- Type
string- Required
- required
- Description
Unique identifier for this Chime—use it for lookups, delivery tracking, and reconciliation.
- Name
purpose- Type
string | null- Description
Application-defined category for this Chime. Omitted when it was not provided.
recipientChimeRecipientrequiredRecipient contact information.Click or tap to expand- Name
email- Type
ChimeRecipientEmail
View email attributesClick or tap to expand
Present when recipient type isInttegro.ChimeRecipientTypes.Email.- Name
address- Type
string- Required
- required
- Description
- Email address.
- Name
name- Type
string- Description
- Recipient name for personalization.
- Name
phone- Type
ChimeRecipientPhone
View phone attributesClick or tap to expand
Present when recipient type isInttegro.ChimeRecipientTypes.Phone.- Name
number- Type
string- Required
- required
- Description
- Phone number in international format.
- Name
type- Type
'phone' | 'email'- Required
- required
- Description
- Contact type:
Inttegro.ChimeRecipientTypes.PhoneorInttegro.ChimeRecipientTypes.Email.
- Name
senderId- Type
string- Required
- required
- Description
Sender identifier used for SMS. Email senders are returned in
email.from.
transmissionChimeTransmission | nullTransmission details and delivery status. Omitted until a transmission exists.Click or tap to expand- Name
createdAt- Type
Date- Required
- required
- Description
- When this transmission was initiated.
- Name
deliveredAt- Type
Date | null- Description
- When the message was delivered to the recipient. Omitted until delivery is confirmed.
View email_events attributesClick or tap to expand
Recorded email delivery events.- Name
failedAt- Type
Date | null- Description
- When the transmission failed. Omitted unless status is
"failed".
- Name
mechanism- Type
string union- Required
- required
- Description
- Transmission mechanism:
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
sentAt- Type
Date | null- Description
- When the message was handed off for delivery. Omitted until it is sent.
- Name
sentVia- Type
ChimeTransport | null- Description
- Delivery transport used—
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
status- Type
string- Required
- required
- Description
- Current transmission status—
"initialized","sent","delivered", or"failed".
Send chime
Send one notification immediately. You can address it directly with a phone number or email address, or point to a saved customer and let Inttegro use that customer's phone number or email address.
AI clients can use send_customer_sms or send_customer_template for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.
The MCP tool covers saved-customer SMS sends only; it does not expose email sends, inline recipients, schedules, or broadcasts.
Rules
- Send either SMS or email in one request. SMS uses
fullMessageor an SMSmessageTemplate; email usesemailor an emailmessageTemplate. - Address a saved customer with
recipient.customerIdandrecipient.transport, or provide an inline phone number or email address. Do not combine the two recipient shapes. - Inline email content requires
email.subject,email.text, andemail.from.address. HTML and custom headers are checked before delivery. - A stored template must be published for the same channel as the recipient.
Required attributes
recipientChimeRecipientrequiredWhere to send the message.Click or tap to expand- Name
customerId- Type
string- Required
- required
- Description
- Required for saved-customer recipients. Pair this with
recipient.transport.
- Name
email- Type
ChimeRecipientEmail- Required
- required
View email attributesClick or tap to expand
Required whenrecipient.typeisInttegro.ChimeRecipientTypes.Email.- Name
address- Type
string- Required
- required
- Description
- Email address to notify.
- Name
name- Type
string- Description
- Optional recipient name for inline recipients.
- Name
phone- Type
ChimeRecipientPhone- Required
- required
View phone attributesClick or tap to expand
Required whenrecipient.typeisInttegro.ChimeRecipientTypes.Phone.- Name
number- Type
string- Required
- required
- Description
- Phone number to notify.
- Name
transport- Type
ChimeRecipientTransport- Required
- required
- Description
- Required for saved-customer recipients. Use
Inttegro.ChimeTransports.Smsto send to the customer's phone number orInttegro.ChimeTransports.Emailto send to the customer's email address.
- Name
type- Type
'phone' | 'email'- Required
- required
- Description
- Required for inline recipients. Use
Inttegro.ChimeRecipientTypes.PhoneorInttegro.ChimeRecipientTypes.Email.
Optional attributes
customDataCustomDataClick or tap to expandYour own key-value string pairs for tracking and reconciliation.
- Name
fullMessage- Type
string- Description
Complete SMS message content to send. Use this only for phone/SMS recipients when you are not using
messageTemplate.
messageTemplateMessageTemplateReferenceStored template reference. Use this instead offullMessagefor SMS recipients, or instead ofemailfor email recipients.Click or tap to expand- Name
templateId- Type
string- Required
- required
- Description
- ID of a published stored template. The template channel must match the resolved recipient transport.
- Name
variables- Type
JSONData
View variables detailsClick or tap to expand
Values for the template variables. Required variables must be present and valid for their declared types.
- Name
purpose- Type
string- Description
Optional category for this notification, such as
"receipt","notification","marketing", or"reminder".
requestMetaRequestMetaRequest-specific controls that do not change the notification.Click or tap to expand- Name
idempotencyKey- Type
string- Description
- Optional request key.
- Name
senderId- Type
string- Description
SMS sender identifier. If omitted, Inttegro uses your default sender. For email, configure the sender with
email.from.
Email attributes
emailChimeEmailMessageInputInline email content. Required for email recipients unless you usemessageTemplate.Click or tap to expand- Name
from- Type
ChimeEmailAddress- Required
- required
- Name
headers- Type
MessageHeaders
View headers detailsClick or tap to expand
Additional email headers validated before delivery.- Name
html- Type
string- Description
- Optional HTML body checked before delivery.
- Name
replyTo- Type
string- Description
- Optional reply-to email address.
- Name
subject- Type
string- Required
- required
- Description
- Email subject.
- Name
text- Type
string- Required
- required
- Description
- Plain-text body.
To send a Chime to a saved customer, pass
recipient.customerId and choose which contact method
to use:
{
"recipient": {
"customer_id": "cu_abc123def456",
"transport": "sms"
},
"full_message": "Your order has shipped."
}
To send email to an inline address, set
recipient.type to
Inttegro.ChimeRecipientTypes.Email and include the top-level email object:
{
"recipient": {
"type": "email",
"email": {
},
"name": "Gloria Kesewaa"
},
"email": {
"subject": "Your receipt from YourBrand",
"text": "Your receipt is ready. View it at https://yourbrand.example/receipts/or_123.",
"html": "<p>Your receipt is ready. <a href=\"https://yourbrand.example/receipts/or_123\">View receipt</a>.</p>",
"from": {
"name": "YourBrand",
}
},
"purpose": "receipt"
}
To send with a stored template, use the generated template ID and keep
variables inside the messageTemplate object:
{
"recipient": {
"customer_id": "cu_abc123def456",
"transport": "sms"
},
"message_template": {
"template_id": "mtpl_WkPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYU",
"variables": {
"order_number": "OR-12345",
"tracking_url": "https://track.example.com/OR-12345"
}
}
}
The examples below use the saved-customer shape. To address someone
directly instead, replace recipient.transport and
recipient.customerId with
recipient.type and the matching inline phone or email
details.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.chimes.send({
requestMeta: {
idempotencyKey: "chime_ship_or_abc123",
},
recipient: {
customerId: "cu_abc123def456",
transport: "sms",
},
fullMessage: "Your order #OR-12345 has been shipped and will arrive in 2-3 business days.",
senderId: "YourBrand",
purpose: "shipping_update",
customData: {
order_id: "or_abc123",
fulfillment_id: "ffl_xyz789",
},
})
{
"chime": {
"id": "ch_WkPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYU",
"customer_id": "cu_abc123def456",
"created_at": "2030-12-10T10:30:00Z",
"full_message": "Your order #OR-12345 has been shipped and will arrive in 2-3 business days. Track at: https://track.example.com/OR-12345",
"recipient": {
"type": "phone",
"phone": {
"number": "+233544998605"
},
"name": "Gloria Kesewaa"
},
"sender_id": "YourBrand",
"purpose": "shipping_update",
"custom_data": {
"order_id": "or_abc123",
"fulfillment_id": "ffl_xyz789"
},
"transmission": {
"address": "+233544998605",
"created_at": "2030-12-10T10:30:00Z",
"gateway": "configured_gateway",
"id": "GvYUWkPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGv",
"initialized_at": "2030-12-10T10:30:00Z",
"mechanism": "sms",
"sent_at": "2030-12-10T10:30:05Z",
"sent_via": "sms",
"status": "sent"
}
}
}
Lookup chime
Retrieve one Chime to see what was sent and whether it was delivered. This is useful when answering delivery questions or matching a notification to your own records.
AI clients can use get_message for this operation. MCP read tools return minimized business data and do not change Inttegro state.
Required attributes
- Name
chimeId- Type
string- Required
- required
- Description
Unique identifier of the Chime to retrieve.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.chimes.lookup({
chimeId: "ch_WkPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYU",
})
Response
- Object
- JSON
ChimeResponse {
chime: { … },
}
{
"chime": {
"id": "ch_WkPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYU",
"created_at": "2030-12-10T10:30:00Z",
"full_message": "Your order #OR-12345 has been shipped and will arrive in 2-3 business days. Track at: https://track.example.com/OR-12345",
"recipient": { … },
"sender_id": "YourBrand",
"purpose": "shipping_update",
"custom_data": { … },
"transmission": { … }
}
}
Page chimes
Browse sent Chimes, newest first. Filter by customer or exact phone number or email address to review one recipient's notification history.
AI clients can use list_messages for this operation. MCP read tools return minimized business data and do not change Inttegro state.
Optional attributes
- Name
customerId- Type
string- Description
Restrict the page to Chimes associated with this customer.
- Name
pageNumber- Type
number- Description
1-based page index to fetch. Defaults to
1and must stay between1and10.
- Name
pageSize- Type
number- Description
Number of Chimes to return. Defaults to
256and must stay between1and256.
- Name
recipient- Type
string- Description
Restrict the page to Chimes whose recipient exactly matches this phone number or email address.
You can filter by recipient,
customerId, both, or neither.
The response size is the number of Chimes
actually returned in chimes, not the requested
page capacity.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.chimes.page({
pageNumber: 1,
pageSize: 25,
customerId: "cu_abc123def456",
})
Schedule chime
Schedule one or more notifications for a future time. Every recipient in a schedule must use the same channel, so create separate schedules for SMS and email.
Rules
sendAftermust be in the future.- Use one content source:
fullMessageor an SMS template for SMS;emailor an email template for email. - Address each recipient as a saved customer or an inline contact, using the same shapes as Send chime.
Required attributes
recipientsChimeRecipient[]requiredOne or more recipients. Each item uses one of the recipient shapes below.Click or tap to expand- Name
customerId- Type
string- Required
- required
- Description
- Required for a saved-customer recipient. Pair with
recipients[].transport.
- Name
email- Type
ChimeRecipientEmail- Required
- required
View email attributesClick or tap to expand
Required for an inline email recipient.- Name
address- Type
string- Required
- required
- Description
- Email address to notify.
- Name
name- Type
string- Description
- Optional name for an inline recipient.
- Name
phone- Type
ChimeRecipientPhone- Required
- required
View phone attributesClick or tap to expand
Required for an inline phone recipient.- Name
number- Type
string- Required
- required
- Description
- Phone number to notify.
- Name
transport- Type
ChimeRecipientTransport- Required
- required
- Description
- Required for a saved-customer recipient:
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
type- Type
'phone' | 'email'- Required
- required
- Description
- Required for an inline recipient:
Inttegro.ChimeRecipientTypes.PhoneorInttegro.ChimeRecipientTypes.Email.
- Name
sendAfter- Type
Date- Required
- required
- Description
Earliest time at which processing may begin. Actual dispatch can occur later.
Optional attributes
emailChimeEmailMessageInputInline email content. Required for email recipients unless you usemessageTemplate.Click or tap to expand- Name
from- Type
ChimeEmailAddress- Required
- required
- Name
headers- Type
MessageHeaders
View headers detailsClick or tap to expand
Additional email headers validated before delivery.- Name
html- Type
string- Description
- Optional HTML body checked before delivery.
- Name
replyTo- Type
string- Description
- Optional reply-to email address.
- Name
subject- Type
string- Required
- required
- Description
- Email subject.
- Name
text- Type
string- Required
- required
- Description
- Plain-text body.
- Name
fullMessage- Type
string- Description
Complete SMS message content to send when the scheduled time arrives. Use this only for SMS schedules when you are not using
messageTemplate.
messageTemplateMessageTemplateReferenceStored template reference. Use this instead offullMessagefor SMS schedules, or instead ofemailfor email schedules.Click or tap to expand- Name
templateId- Type
string- Required
- required
- Description
- ID of a published stored template. The template channel must match the resolved recipient transport.
- Name
variables- Type
JSONData
View variables detailsClick or tap to expand
Values for the template variables. Required variables must be present and valid for their declared types.
- Name
purpose- Type
string | null- Description
Optional category for this scheduled notification.
requestMetaRequestMetaRequest-specific controls that do not change the scheduled notification.Click or tap to expand- Name
idempotencyKey- Type
string- Description
- Optional request key.
- Name
senderId- Type
string- Description
SMS sender identifier. If omitted, Inttegro uses your default sender. For email, configure the sender with
email.from.
Response attributes
- Name
createdAt- Type
Date- Required
- required
- Description
When the schedule was created.
emailRecord<string, unknown>Validated email content. Omitted for SMS schedules.Click or tap to expandView headers detailsClick or tap to expand
Validated email headers.View safety attributesClick or tap to expand
Email content safety result.View links attributesClick or tap to expand
Links found by the scan.- Name
status- Type
string union- Description
Inttegro.ContentSafetyStatuses.Allowed,Inttegro.ContentSafetyStatuses.Rejected, orInttegro.ContentSafetyStatuses.Quarantined.
- Name
status- Type
string union- Description
Inttegro.ContentSafetyStatuses.Allowed,Inttegro.ContentSafetyStatuses.Rejected, orInttegro.ContentSafetyStatuses.Quarantined.
- Name
executedAt- Type
Date | null- Description
When execution began. Omitted until execution.
- Name
fullMessage- Type
string- Required
- required
- Description
Rendered SMS content. Empty for email schedules.
- Name
id- Type
string- Required
- required
- Description
Schedule ID used with the schedule lookup and cancellation endpoints.
- Name
purpose- Type
string | null- Description
Optional message category. Omitted when it was not provided.
- Name
recipients- Type
string[]- Description
Resolved destination addresses.
- Name
sendAfter- Type
Date- Required
- required
- Description
Earliest requested delivery time.
- Name
senderId- Type
string- Required
- required
- Description
SMS sender selected for the scheduled messages. For email, see
email.from.
To schedule for saved customers, include recipients with
recipients[].customerId and
recipients[].transport:
{
"recipients": [
{ "customer_id": "cu_abc123def456", "transport": "sms" },
{ "customer_id": "cu_def456ghi789", "transport": "sms" }
],
"full_message": "Reminder: Your appointment starts tomorrow at 10 AM.",
"send_after": "2030-12-15T10:00:00Z",
"request_meta": {
"idempotency_key": "sched_appointment_cu_abc123_2025_12_15"
}
}
To schedule email for saved customers, set
recipients[].transport to
Inttegro.ChimeTransports.Email and provide the top-level email object:
{
"recipients": [
{ "customer_id": "cu_abc123def456", "transport": "email" },
{ "customer_id": "cu_def456ghi789", "transport": "email" }
],
"email": {
"subject": "Your subscription renews tomorrow",
"text": "Your subscription renews tomorrow. Update billing at https://yourbrand.example/billing.",
"from": {
}
},
"send_after": "2030-12-15T10:00:00Z",
"purpose": "reminder"
}
To schedule with a stored template, use the same
messageTemplate object shape used by Send chime:
{
"recipients": [
{ "customer_id": "cu_abc123def456", "transport": "email" }
],
"message_template": {
"template_id": "mtpl_emailRenewal123",
"variables": {
"customer_name": "Gloria",
"renewal_date": "2030-12-16"
}
},
"send_after": "2030-12-15T10:00:00Z",
"purpose": "reminder"
}
The examples below mix both recipient shapes in the same request.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.chimes.schedule({
recipients: [
{
customerId: "cu_abc123def456",
transport: "sms",
},
{
type: "phone",
phone: {
number: "+233501234567",
},
name: "Backup Contact",
},
],
fullMessage: "Reminder: Your subscription renews tomorrow. Visit https://example.com/billing to update payment details.",
sendAfter: new Date("2030-12-15T09:00:00Z"),
senderId: "YourBrand",
purpose: "reminder",
})
Response
- Object
- JSON
ScheduledChimeResponse {
scheduledChime: { … },
}
{
"scheduled_chime": {
"id": "sch_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
"created_at": "2030-12-10T14:30:00Z",
"customer_ids": [ … ],
"recipients": [ … ],
"full_message": "Reminder: Your subscription renews tomorrow. Visit https://example.com/billing to update payment details.",
"sender_id": "YourBrand",
"purpose": "reminder",
"send_after": "2030-12-15T09:00:00Z"
}
}
Lookup a scheduled chime
Check whether a scheduled notification has run. After execution, the response includes the Chime IDs created for successful recipients and any recipient-specific errors.
Required attributes
- Name
scheduleId- Type
string- Required
- required
- Description
The schedule ID returned when you created the scheduled Chime. Example:
sch_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk.
Response attributes
- Name
chimeIds- Type
string[]- Description
IDs created when the schedule executes. Omitted when there are no created Chimes.
- Name
content- Type
string- Required
- required
- Description
Rendered SMS content. Empty for email schedules.
- Name
createdAt- Type
Date- Required
- required
- Description
When the schedule was created.
emailRecord<string, unknown>Validated email content. Omitted for SMS schedules.Click or tap to expandView headers detailsClick or tap to expand
Validated email headers.View safety attributesClick or tap to expand
Email content safety result.View links attributesClick or tap to expand
Links found by the scan.- Name
status- Type
string union- Description
Inttegro.ContentSafetyStatuses.Allowed,Inttegro.ContentSafetyStatuses.Rejected, orInttegro.ContentSafetyStatuses.Quarantined.
- Name
status- Type
string union- Description
Inttegro.ContentSafetyStatuses.Allowed,Inttegro.ContentSafetyStatuses.Rejected, orInttegro.ContentSafetyStatuses.Quarantined.
errorsScheduleError[]Per-recipient execution errors. Omitted when there are no errors.Click or tap to expand- Name
executedAt- Type
Date | null- Description
When execution began. Omitted until execution.
- Name
id- Type
string- Required
- required
- Description
Unique schedule identifier.
- Name
purpose- Type
string | null- Description
Optional message category. Omitted when it was not provided.
- Name
recipients- Type
string[]- Required
- required
- Description
Resolved destination addresses.
- Name
sendAfter- Type
Date- Required
- required
- Description
Earliest requested delivery time.
- Name
senderId- Type
string- Required
- required
- Description
SMS sender selected for the scheduled messages. For email, see
email.from.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.schedules.lookup({
scheduleId: "sch_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
})
Response
- Object
- JSON
ScheduledChimeResponse {
scheduledChime: { … },
}
{
"scheduled_chime": {
"id": "sch_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
"recipients": [ … ],
"content": "Reminder: Your subscription renews tomorrow. Visit https://example.com/billing to update payment details.",
"sender_id": "YourBrand",
"purpose": "reminder",
"send_after": "2030-12-15T09:00:00Z",
"created_at": "2030-12-10T14:30:00Z",
"executed_at": "2030-12-15T09:00:03Z",
"chime_ids": [ … ],
"errors": [ … ]
}
}
Cancel a scheduled chime
Stop a scheduled notification before delivery begins. Cancel it before
sendAfter; once execution starts,
some or all messages may already be on their way.
Required attributes
- Name
scheduleId- Type
string- Required
- required
- Description
The schedule ID to cancel. The schedule must not be completed or already canceled.
A successful response returns the same schedule lifecycle fields as
Lookup a scheduled chime, plus
canceledAt with the recorded
cancellation time.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.schedules.cancel({
scheduleId: "sch_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
})
Response
- Object
- JSON
ScheduledChimeResponse {
scheduledChime: { … },
}
{
"scheduled_chime": {
"id": "sch_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
"customer_ids": [ … ],
"recipients": [ … ],
"content": "Reminder: Your subscription renews tomorrow. Visit https://example.com/billing to update payment details.",
"sender_id": "YourBrand",
"purpose": "reminder",
"send_after": "2030-12-15T09:00:00Z",
"created_at": "2030-12-10T14:30:00Z",
"canceled_at": "2030-12-14T16:45:00Z"
}
}
Broadcast chimes
Send one message to many recipients. The response confirms that Inttegro accepted the broadcast, not that every recipient has received a Chime; use Lookup a broadcast to follow its progress.
Rules
- All recipients must use the same channel. Create separate broadcasts for SMS and email.
- SMS uses raw text or a published SMS template. Email uses inline
emailcontent or a published email template. - Address each recipient as a saved customer or an inline contact, using the same shapes as Send chime.
- Each recipient receives a separate Chime, so delivery can be tracked individually.
- Provide
senderwhen you do not want it to be empty; broadcasts do not apply a default sender.
Required attributes
recipientsChimeRecipient[]requiredOne or more recipients. Each item uses one of the recipient shapes below.Click or tap to expand- Name
customerId- Type
string- Required
- required
- Description
- Required for a saved-customer recipient. Pair with
recipients[].transport.
- Name
email- Type
ChimeRecipientEmail- Required
- required
View email attributesClick or tap to expand
Required for an inline email recipient.- Name
address- Type
string- Required
- required
- Description
- Email address to notify.
- Name
name- Type
string- Description
- Optional name for an inline recipient.
- Name
phone- Type
ChimeRecipientPhone- Required
- required
View phone attributesClick or tap to expand
Required for an inline phone recipient.- Name
number- Type
string- Required
- required
- Description
- Phone number to notify.
- Name
transport- Type
ChimeRecipientTransport- Required
- required
- Description
- Required for a saved-customer recipient:
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
type- Type
'phone' | 'email'- Required
- required
- Description
- Required for an inline recipient:
Inttegro.ChimeRecipientTypes.PhoneorInttegro.ChimeRecipientTypes.Email.
Optional attributes
emailChimeEmailMessageInputInline email content. Required for email recipients unless you usemessageTemplate.Click or tap to expand- Name
from- Type
ChimeEmailAddress- Required
- required
- Name
headers- Type
MessageHeaders
View headers detailsClick or tap to expand
Additional email headers validated before delivery.- Name
html- Type
string- Description
- Optional HTML body checked before delivery.
- Name
replyTo- Type
string- Description
- Optional reply-to email address.
- Name
subject- Type
string- Required
- required
- Description
- Email subject.
- Name
text- Type
string- Required
- required
- Description
- Plain-text body.
messageTemplateBroadcastChimeMessageTemplateSMS content or stored template reference.Click or tap to expand- Name
templateId- Type
string- Required
- required
- Description
- ID of a published stored template. SMS broadcasts require an SMS template; email broadcasts require an email template.
- Name
variables- Type
JSONData
View variables detailsClick or tap to expand
Values for the template variables. Required variables must be present and valid for their declared types.
- Name
purpose- Type
string- Description
Optional category for this broadcast.
requestMetaRequestMetaRequest-specific controls that do not change the broadcast audience or content.Click or tap to expand- Name
idempotencyKey- Type
string- Description
- Optional request key.
- Name
sender- Type
string- Description
SMS sender identifier. Strongly recommended because broadcasts do not apply a default. For email, configure the sender with
email.from.
Response attributes
- Name
content- Type
string- Required
- required
- Description
Rendered SMS content. Empty for email broadcasts.
- Name
createdAt- Type
Date- Required
- required
- Description
When the broadcast was created.
- Name
customerIds- Type
string[]- Description
Saved customer IDs resolved for this broadcast. Omitted when none were used.
emailChimeEmailMessageValidated email content. Omitted for SMS broadcasts.Click or tap to expand- Name
from- Type
ChimeEmailAddress
- Name
headers- Type
MessageHeaders
View headers detailsClick or tap to expand
Validated email headers.- Name
html- Type
string | null- Description
- HTML body.
- Name
replyTo- Type
ChimeEmailAddress
View safety attributesClick or tap to expand
Email content safety result.- Name
contentHash- Type
string- Description
- Hash of the scanned content.
View links attributesClick or tap to expand
Links found by the scan.- Name
host- Type
string- Description
- Host name, when present.
- Name
raw- Type
string- Description
- Link as it appeared in the message.
- Name
reason- Type
string- Description
- Reason for the link decision, when available.
- Name
scheme- Type
string- Description
- URL scheme.
- Name
status- Type
string- Description
Inttegro.ContentSafetyStatuses.Allowed,Inttegro.ContentSafetyStatuses.Rejected, orInttegro.ContentSafetyStatuses.Quarantined.
- Name
normalizedText- Type
string- Description
- Normalized text used by the scan.
- Name
quarantineNotes- Type
string- Description
- Quarantine context, when available.
- Name
reasonCodes- Type
string[]- Description
- Reasons for a non-allowed result.
- Name
sanitizedHtml- Type
string- Description
- Sanitized HTML, when available.
- Name
scanner- Type
string- Description
- Scanner that produced the result.
- Name
schema- Type
JSONData
- Name
subject- Type
string- Description
- Email subject.
- Name
text- Type
string- Description
- Plain-text email body.
- Name
id- Type
string- Required
- required
- Description
Broadcast ID used with the broadcast lookup and cancellation endpoints.
- Name
purpose- Type
string | null- Description
Optional message category. Omitted when it was not provided.
- Name
recipients- Type
string[]- Required
- required
- Description
Resolved destination addresses.
- Name
sendAfter- Type
Date- Required
- required
- Description
Time at which asynchronous processing was queued.
- Name
senderId- Type
string- Required
- required
- Description
SMS sender selected for the broadcast messages. For email, see
email.from.
For SMS broadcasts, messageTemplate may be a raw SMS
string for legacy inline content or an object with
messageTemplate.templateId and
messageTemplate.variables for stored templates. For
email broadcasts, messageTemplate must be an object;
raw string content is SMS-only.
To broadcast to saved customers, include recipients with
recipients[].customerId and
recipients[].transport:
{
"recipients": [
{ "customer_id": "cu_abc123def456", "transport": "email" },
{ "customer_id": "cu_def456ghi789", "transport": "email" }
],
"email": {
"subject": "Your order has shipped",
"text": "Your order has shipped. Track it at https://track.shop.example/abc123.",
"from": {
}
},
"sender": "ShopBrand",
"request_meta": {
"idempotency_key": "broadcast_shipping_2025_12_15"
}
}
To broadcast an email-only campaign, use email recipients and provide the
top-level email object:
{
"recipients": [
{ "customer_id": "cu_abc123def456", "transport": "email" },
{
"type": "email",
"email": {
},
"name": "Backup Contact"
}
],
"email": {
"subject": "Your order has shipped",
"text": "Your order #12345 has shipped. Track it at https://track.shop.example/abc123.",
"from": {
}
},
"sender": "ShopBrand",
"purpose": "order_notification"
}
To broadcast with a stored template, pass
messageTemplate as an object:
{
"recipients": [
{ "customer_id": "cu_abc123def456", "transport": "email" },
{ "customer_id": "cu_def456ghi789", "transport": "email" }
],
"message_template": {
"template_id": "mtpl_emailShipping123",
"variables": {
"order_number": "OR-12345",
"tracking_url": "https://track.shop.example/OR-12345"
}
},
"sender": "ShopBrand",
"purpose": "order_notification"
}
The examples below mix both recipient shapes in the same request.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.chimes.broadcast({
recipients: [
{
customerId: "cu_abc123def456",
transport: "email",
},
{
type: "email",
email: {
},
name: "Backup Contact",
},
],
email: {
subject: "Your order #12345 has shipped",
text: "Your order #12345 has shipped. Track it at https://track.shop.com/abc123.",
from: {
},
},
sender: "ShopName",
purpose: "order_notification",
})
Response
- Object
- JSON
BroadcastResponse {
broadcast: { … },
}
{
"broadcast": {
"id": "brc_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
"content": "Your order #12345 has shipped. Track it at https://track.shop.com/abc123.",
"customer_ids": [ … ],
"recipients": [ … ],
"email": { … },
"sender_id": "ShopName",
"purpose": "order_notification",
"send_after": "2030-12-15T09:00:00Z",
"created_at": "2030-12-15T09:00:00Z"
}
}
Lookup a broadcast
Check a broadcast's progress. The response lists the Chimes created for successful recipients and any recipient-specific errors.
Required attributes
- Name
broadcastId- Type
string- Required
- required
- Description
The broadcast ID returned when you created the broadcast. Example:
brc_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk.
Response attributes
- Name
chimeIds- Type
string[]- Description
IDs created when the broadcast executes. Omitted when there are no created Chimes.
- Name
content- Type
string- Required
- required
- Description
Rendered SMS content. Empty for email broadcasts.
- Name
createdAt- Type
Date- Required
- required
- Description
When the broadcast was created.
- Name
customerIds- Type
string[]- Description
Saved customer IDs resolved for this broadcast. Omitted when none were used.
emailChimeEmailMessageValidated email content. Omitted for SMS broadcasts.Click or tap to expand- Name
from- Type
ChimeEmailAddress
- Name
headers- Type
MessageHeaders
View headers detailsClick or tap to expand
Validated email headers.- Name
html- Type
string | null- Description
- HTML body.
- Name
replyTo- Type
ChimeEmailAddress
View safety attributesClick or tap to expand
Email content safety result.- Name
contentHash- Type
string- Description
- Hash of the scanned content.
View links attributesClick or tap to expand
Links found by the scan.- Name
host- Type
string- Description
- Host name, when present.
- Name
raw- Type
string- Description
- Link as it appeared in the message.
- Name
reason- Type
string- Description
- Reason for the link decision, when available.
- Name
scheme- Type
string- Description
- URL scheme.
- Name
status- Type
string- Description
Inttegro.ContentSafetyStatuses.Allowed,Inttegro.ContentSafetyStatuses.Rejected, orInttegro.ContentSafetyStatuses.Quarantined.
- Name
normalizedText- Type
string- Description
- Normalized text used by the scan.
- Name
quarantineNotes- Type
string- Description
- Quarantine context, when available.
- Name
reasonCodes- Type
string[]- Description
- Reasons for a non-allowed result.
- Name
sanitizedHtml- Type
string- Description
- Sanitized HTML, when available.
- Name
scanner- Type
string- Description
- Scanner that produced the result.
- Name
schema- Type
JSONData
- Name
subject- Type
string- Description
- Email subject.
- Name
text- Type
string- Description
- Plain-text email body.
errorsBroadcastError[]Per-recipient execution errors. Omitted when there are no errors.Click or tap to expand- Name
executedAt- Type
Date | null- Description
When execution began. Omitted until execution.
- Name
id- Type
string- Required
- required
- Description
Unique broadcast identifier.
- Name
purpose- Type
string | null- Description
Optional message category. Omitted when it was not provided.
- Name
recipients- Type
string[]- Required
- required
- Description
Resolved destination addresses.
- Name
sendAfter- Type
Date- Required
- required
- Description
Time at which asynchronous processing was queued.
- Name
senderId- Type
string- Required
- required
- Description
SMS sender selected for the broadcast messages. For email, see
email.from.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.broadcasts.lookup({
broadcastId: "brc_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
})
Response
- Object
- JSON
BroadcastResponse {
broadcast: { … },
}
{
"broadcast": {
"id": "brc_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
"customer_ids": [ … ],
"recipients": [ … ],
"content": "Your order #12345 has shipped! Track: https://track.shop.com/abc123",
"sender_id": "ShopName",
"purpose": "order_notification",
"send_after": "2030-12-15T09:00:00Z",
"created_at": "2030-12-15T09:00:00Z",
"executed_at": "2030-12-15T09:00:03Z",
"chime_ids": [ … ],
"errors": [ … ]
}
}
Cancel a broadcast
Stop a broadcast that has not finished processing. Because delivery begins asynchronously, cancel as soon as possible; some recipients may already have received their Chimes.
Required attributes
- Name
broadcastId- Type
string- Required
- required
- Description
The broadcast ID to cancel. The broadcast must not be completed or already canceled.
A successful response returns the same broadcast lifecycle fields as
Lookup a broadcast, plus
canceledAt with the recorded cancellation
time.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.broadcasts.cancel({
broadcastId: "brc_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
})
Response
- Object
- JSON
BroadcastResponse {
broadcast: { … },
}
{
"broadcast": {
"id": "brc_kPvqTrqGsopu07wfC7ttoWqmfwt48ZW7BGvYUWk",
"recipients": [ … ],
"content": "Your order #12345 has shipped! Track: https://track.shop.com/abc123",
"sender_id": "ShopName",
"purpose": "order_notification",
"send_after": "2030-12-15T09:00:00Z",
"created_at": "2030-12-15T09:00:00Z",
"canceled_at": "2030-12-15T09:00:02Z"
}
}
Stored message template references
Chime send, schedule, and broadcast requests can render a stored message template instead of accepting inline content. Use this shape when the content should come from a published reusable template:
{
"message_template": {
"template_id": "mtpl_receipt_ready",
"variables": {
"customer_name": "Gloria",
"receipt_url": "https://yourstore.example/receipts/or_123"
}
}
}
messageTemplate.templateId must identify a published
template. Supply every required variable using the type defined by that
template. SMS templates can send only to SMS recipients, and email templates
can send only to email recipients.
Provide exactly one content source for the resolved transport. For SMS sends,
use either fullMessage or an SMS
messageTemplate. For email sends, use either
email or an email messageTemplate. Do
not combine SMS content and email content in the same request. Schedules and
broadcasts apply the equivalent rule to their own request types.
Use Render a message template preview before sending production campaigns when variable values come from user or catalog data.