Reference

Messaging

Send, edit, delete and react to messages, and upload the media they carry

Everything here needs MESSAGES_SEND. The narrative version is in Messaging.

addMessageReaction

Mutation

ScopeMESSAGES_SEND

Add an emoji reaction to a message (idempotent; replaces your previous reaction).

Arguments

messageIdString!Required
emojiString!Required

Returns

_idString!
messageIdFloat
externalMessageIdString
fromMessageSenderUnion
chatChat!
sentFromChannelBoolean
textString
captionString
showCaptionAboveMediaBoolean
hasMediaSpoilerBoolean
contactContact
replyToMessageMessage
mutation {
  addMessageReaction(messageId: "…", emoji: "…") { _id messageId externalMessageId type from }
}

createMedia

Mutation

ScopeMESSAGES_SEND

Arguments

createMediaInputCreateMediaInput!Required
fileUpload!Required

CreateMediaInput

typeString!Required
filenameString
fileIdString
fileUniqueIdString
captionString
hasSpoilerBoolean
widthFloat
heightFloat
fileSizeFloat
durationFloat
supportsStreamingBoolean
disableContentTypeDetectionBoolean
performerString
titleString
mimeTypeString
isAnimatedBoolean
isVideoBoolean
emojiString
setNameString
customEmojiIdString
stickerTypeString

Returns

_idString!
urlString!
filenameString
widthFloat
heightFloat
fileSizeFloat
durationFloat
supportsStreamingBoolean
disableContentTypeDetectionBoolean
performerString
titleString
mimeTypeString
thumbnailThumbnail
isAnimatedBoolean
isVideoBoolean
emojiString
setNameString
customEmojiIdString
stickerTypeString
needsRepaintingBoolean
processedContentString
Processed/extracted text content for knowledge base
isProcessedBoolean
Whether file processing is complete for knowledge base
mutation {
  createMedia(createMediaInput: { … }, file: { … }) { _id url type filename width }
}

deleteMedia

Mutation

ScopeMESSAGES_SEND

Arguments

idString!Required

Returns

Boolean!
mutation {
  deleteMedia(id: "…")
}

deleteMessage

Mutation

ScopeMESSAGES_SEND

Arguments

messageIdString!Required

Returns

Boolean!
mutation {
  deleteMessage(messageId: "…")
}

removeMessageReaction

Mutation

ScopeMESSAGES_SEND

Remove your emoji reaction from a message (idempotent no-op if absent).

Arguments

messageIdString!Required
emojiString!Required

Returns

_idString!
messageIdFloat
externalMessageIdString
fromMessageSenderUnion
chatChat!
sentFromChannelBoolean
textString
captionString
showCaptionAboveMediaBoolean
hasMediaSpoilerBoolean
contactContact
replyToMessageMessage
mutation {
  removeMessageReaction(messageId: "…", emoji: "…") { _id messageId externalMessageId type from }
}

retryFailedMessage

Mutation

ScopeMESSAGES_SEND

Retry sending a failed message. Only messages with deliveryStatus "failed" can be retried.

Arguments

messageIdString!Required

Returns

_idString!
messageIdFloat
externalMessageIdString
fromMessageSenderUnion
chatChat!
sentFromChannelBoolean
textString
captionString
showCaptionAboveMediaBoolean
hasMediaSpoilerBoolean
contactContact
replyToMessageMessage
mutation {
  retryFailedMessage(messageId: "…") { _id messageId externalMessageId type from }
}

sendMessage

Mutation

ScopeMESSAGES_SEND

Arguments

chatIdString!Required
actingUserIdString
asyncBoolean

CreateCombinedMessageInput

createdAtDateTime
deliveryStatusMessageDeliveryStatus
Delivery status - defaults based on message direction
replyToMessageString
mentions[ID!]
internalBoolean
Post as an internal note without a mention (team-only, never sent to the customer).
textString
replyToButtonIdString
keyboardTypeString
flowTitleString
media[String!]
captionString
showCaptionAboveMediaBoolean
hasMediaSpoilerBoolean
mediaGroupIdString
isMediaGroupBoolean
mediaGroup[String!]

Returns

_idString!
messageIdFloat
externalMessageIdString
fromMessageSenderUnion
chatChat!
sentFromChannelBoolean
textString
captionString
showCaptionAboveMediaBoolean
hasMediaSpoilerBoolean
contactContact
replyToMessageMessage
mutation {
  sendMessage(chatId: "…", input: { … }, actingUserId: "…", async: false) { _id messageId externalMessageId type from }
}

sendWhatsAppTemplateMessage

Mutation

ScopeMESSAGES_SEND

Send a WhatsApp template message to a chat (works anytime, even outside 24h window)

Arguments

SendWhatsAppTemplateInput

templateIdString!Required
Template ID to send
chatIdString!Required
Chat ID to send the template to
variableOverridesTemplateVariableOverrides
Manual variable values to override auto-resolved values
productOverridesProductTemplateOverrides
Product-specific overrides for SPM, MPM, and Product Card Carousel templates. Required for catalog-based templates.

Returns

successBoolean!
messageIdString
WhatsApp message ID if successful
errorString
mutation {
  sendWhatsAppTemplateMessage(input: { … }) { success messageId error }
}

updateMessage

Mutation

ScopeMESSAGES_SEND

Arguments

messageIdString!Required
inputUpdateMessageInput!Required

UpdateMessageInput

messageIdString
updatedAtDateTime
textString
captionString
Caption for media messages
resolvedBoolean
mentions[ID!]

Returns

_idString!
messageIdFloat
externalMessageIdString
fromMessageSenderUnion
chatChat!
sentFromChannelBoolean
textString
captionString
showCaptionAboveMediaBoolean
hasMediaSpoilerBoolean
contactContact
replyToMessageMessage
mutation {
  updateMessage(messageId: "…", input: { … }) { _id messageId externalMessageId type from }
}

uploadMultipleMedia

Mutation

ScopeMESSAGES_SEND

Arguments

files[Upload!]!Required
createMediaInputs[CreateMediaInput!]!Required

CreateMediaInput

typeString!Required
filenameString
fileIdString
fileUniqueIdString
captionString
hasSpoilerBoolean
widthFloat
heightFloat
fileSizeFloat
durationFloat
supportsStreamingBoolean
disableContentTypeDetectionBoolean
performerString
titleString
mimeTypeString
isAnimatedBoolean
isVideoBoolean
emojiString
setNameString
customEmojiIdString
stickerTypeString

Returns

_idString!
urlString!
filenameString
widthFloat
heightFloat
fileSizeFloat
durationFloat
supportsStreamingBoolean
disableContentTypeDetectionBoolean
performerString
titleString
mimeTypeString
thumbnailThumbnail
isAnimatedBoolean
isVideoBoolean
emojiString
setNameString
customEmojiIdString
stickerTypeString
needsRepaintingBoolean
processedContentString
Processed/extracted text content for knowledge base
isProcessedBoolean
Whether file processing is complete for knowledge base
mutation {
  uploadMultipleMedia(files: […], createMediaInputs: […]) { _id url type filename width }
}

On this page