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
ScopeMESSAGES_SEND
Add an emoji reaction to a message (idempotent; replaces your previous reaction).
Arguments
messageIdString!RequiredemojiString!RequiredReturns
_idString!messageIdFloatexternalMessageIdStringtypeMessageType!fromMessageSenderUnionchatChat!directionMessageDirection!sentFromChannelBooleantextStringmediaGroup[MediaGroupMessage!]media[Media!]captionStringshowCaptionAboveMediaBooleanhasMediaSpoilerBooleancontactContactlocationMessageLocationunsupportedMessageUnsupportedproducts[MessageProduct!]pollMessagePolldiceMessageDicegameMessageGamebuttons[MessageButton!]sources[MessageSource!]replyToMessageMessagemutation {
addMessageReaction(messageId: "…", emoji: "…") { _id messageId externalMessageId type from }
}createMedia
ScopeMESSAGES_SEND
Arguments
fileUpload!RequiredCreateMediaInput
typeString!RequiredfilenameStringfileIdStringfileUniqueIdStringcaptionStringhasSpoilerBooleanwidthFloatheightFloatfileSizeFloatdurationFloatsupportsStreamingBooleandisableContentTypeDetectionBooleanperformerStringtitleStringmimeTypeStringthumbnailThumbnailInputisAnimatedBooleanisVideoBooleanemojiStringsetNameStringcustomEmojiIdStringstickerTypeStringReturns
_idString!urlString!typeMediaType!filenameStringwidthFloatheightFloatfileSizeFloatdurationFloatsupportsStreamingBooleandisableContentTypeDetectionBooleanperformerStringtitleStringmimeTypeStringthumbnailThumbnailframes[Thumbnail!]isAnimatedBooleanisVideoBooleanemojiStringsetNameStringcustomEmojiIdStringstickerTypeStringneedsRepaintingBooleanprocessedContentStringisProcessedBooleanmutation {
createMedia(createMediaInput: { … }, file: { … }) { _id url type filename width }
}deleteMedia
ScopeMESSAGES_SEND
Arguments
idString!RequiredReturns
Boolean!mutation {
deleteMedia(id: "…")
}deleteMessage
ScopeMESSAGES_SEND
Arguments
messageIdString!RequiredReturns
Boolean!mutation {
deleteMessage(messageId: "…")
}removeMessageReaction
ScopeMESSAGES_SEND
Remove your emoji reaction from a message (idempotent no-op if absent).
Arguments
messageIdString!RequiredemojiString!RequiredReturns
_idString!messageIdFloatexternalMessageIdStringtypeMessageType!fromMessageSenderUnionchatChat!directionMessageDirection!sentFromChannelBooleantextStringmediaGroup[MediaGroupMessage!]media[Media!]captionStringshowCaptionAboveMediaBooleanhasMediaSpoilerBooleancontactContactlocationMessageLocationunsupportedMessageUnsupportedproducts[MessageProduct!]pollMessagePolldiceMessageDicegameMessageGamebuttons[MessageButton!]sources[MessageSource!]replyToMessageMessagemutation {
removeMessageReaction(messageId: "…", emoji: "…") { _id messageId externalMessageId type from }
}retryFailedMessage
ScopeMESSAGES_SEND
Retry sending a failed message. Only messages with deliveryStatus "failed" can be retried.
Arguments
messageIdString!RequiredReturns
_idString!messageIdFloatexternalMessageIdStringtypeMessageType!fromMessageSenderUnionchatChat!directionMessageDirection!sentFromChannelBooleantextStringmediaGroup[MediaGroupMessage!]media[Media!]captionStringshowCaptionAboveMediaBooleanhasMediaSpoilerBooleancontactContactlocationMessageLocationunsupportedMessageUnsupportedproducts[MessageProduct!]pollMessagePolldiceMessageDicegameMessageGamebuttons[MessageButton!]sources[MessageSource!]replyToMessageMessagemutation {
retryFailedMessage(messageId: "…") { _id messageId externalMessageId type from }
}sendMessage
ScopeMESSAGES_SEND
Arguments
CreateCombinedMessageInput
createdAtDateTimedeliveryStatusMessageDeliveryStatusreplyToMessageStringmentions[ID!]internalBooleantextStringbuttons[MessageButtonInput!]replyToButtonIdStringkeyboardTypeStringflowTitleStringmedia[String!]captionStringshowCaptionAboveMediaBooleanhasMediaSpoilerBooleanmediaGroupIdStringisMediaGroupBooleanmediaGroup[String!]Returns
_idString!messageIdFloatexternalMessageIdStringtypeMessageType!fromMessageSenderUnionchatChat!directionMessageDirection!sentFromChannelBooleantextStringmediaGroup[MediaGroupMessage!]media[Media!]captionStringshowCaptionAboveMediaBooleanhasMediaSpoilerBooleancontactContactlocationMessageLocationunsupportedMessageUnsupportedproducts[MessageProduct!]pollMessagePolldiceMessageDicegameMessageGamebuttons[MessageButton!]sources[MessageSource!]replyToMessageMessagemutation {
sendMessage(chatId: "…", input: { … }, actingUserId: "…", async: false) { _id messageId externalMessageId type from }
}sendWhatsAppTemplateMessage
ScopeMESSAGES_SEND
Send a WhatsApp template message to a chat (works anytime, even outside 24h window)
Arguments
SendWhatsAppTemplateInput
templateIdString!RequiredchatIdString!RequiredvariableOverridesTemplateVariableOverridesproductOverridesProductTemplateOverridesReturns
successBoolean!messageIdStringerrorStringmutation {
sendWhatsAppTemplateMessage(input: { … }) { success messageId error }
}updateMessage
ScopeMESSAGES_SEND
Arguments
messageIdString!RequiredUpdateMessageInput
messageIdStringupdatedAtDateTimetextStringcaptionStringreactionMessageReactionInputresolvedBooleanmentions[ID!]Returns
_idString!messageIdFloatexternalMessageIdStringtypeMessageType!fromMessageSenderUnionchatChat!directionMessageDirection!sentFromChannelBooleantextStringmediaGroup[MediaGroupMessage!]media[Media!]captionStringshowCaptionAboveMediaBooleanhasMediaSpoilerBooleancontactContactlocationMessageLocationunsupportedMessageUnsupportedproducts[MessageProduct!]pollMessagePolldiceMessageDicegameMessageGamebuttons[MessageButton!]sources[MessageSource!]replyToMessageMessagemutation {
updateMessage(messageId: "…", input: { … }) { _id messageId externalMessageId type from }
}uploadMultipleMedia
ScopeMESSAGES_SEND
Arguments
files[Upload!]!RequiredCreateMediaInput
typeString!RequiredfilenameStringfileIdStringfileUniqueIdStringcaptionStringhasSpoilerBooleanwidthFloatheightFloatfileSizeFloatdurationFloatsupportsStreamingBooleandisableContentTypeDetectionBooleanperformerStringtitleStringmimeTypeStringthumbnailThumbnailInputisAnimatedBooleanisVideoBooleanemojiStringsetNameStringcustomEmojiIdStringstickerTypeStringReturns
_idString!urlString!typeMediaType!filenameStringwidthFloatheightFloatfileSizeFloatdurationFloatsupportsStreamingBooleandisableContentTypeDetectionBooleanperformerStringtitleStringmimeTypeStringthumbnailThumbnailframes[Thumbnail!]isAnimatedBooleanisVideoBooleanemojiStringsetNameStringcustomEmojiIdStringstickerTypeStringneedsRepaintingBooleanprocessedContentStringisProcessedBooleanmutation {
uploadMultipleMedia(files: […], createMediaInputs: […]) { _id url type filename width }
}