<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 12.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 3.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SiriKit",
  "identifier" : "/documentation/Intents/INSendMessageIntent",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Intents"
    ],
    "preciseIdentifier" : "c:objc(cs)INSendMessageIntent"
  },
  "title" : "INSendMessageIntent"
}
-->

# INSendMessageIntent

A request to send a message to the designated recipients.

```
class INSendMessageIntent
```

## Overview

Siri creates an [`INSendMessageIntent`](/documentation/Intents/INSendMessageIntent) object when the user asks to send a message to one or more users. This intent object contains the message to send and the recipients of the message, which can include groups of users. Use the information in this object to construct and send the message.

To handle this intent, the handler object in your Intents extension must adopt the [`INSendMessageIntentHandling`](/documentation/Intents/INSendMessageIntentHandling) protocol. Your handler confirms the request and creates an [`INSendMessageIntentResponse`](/documentation/Intents/INSendMessageIntentResponse) object with the results.

> Note:
> To allow a user wearing AirPods to automatically hear messages, you must implement both ``doc://com.apple.sirikit/documentation/Intents/INSearchForMessagesIntent`` and ``doc://com.apple.sirikit/documentation/Intents/INSendMessageIntent``. Add <doc://com.apple.documentation/documentation/UserNotifications/UNAuthorizationOptions/announcement> to the options when calling <doc://com.apple.documentation/documentation/UserNotifications/UNUserNotificationCenter/requestAuthorization(options:completionHandler:)>. Finally, add <doc://com.apple.documentation/documentation/UserNotifications/UNNotificationCategoryOptions/allowAnnouncement> to the category option and ``doc://com.apple.sirikit/documentation/Intents/INSearchForMessagesIntent`` to the category intent identifier.

### Additional Intent Attributes

Additional attributes of this intent object include the following:

|Attribute                      |Description                   |
|-------------------------------|------------------------------|
|Supported by                   |Siri Intents, Siri Suggestions|
|Always requires unlocked device|No                            |

Apps can optionally ask the user to unlock the device before handling this intent. To require unlocking of the device, include the name of this class in the `IntentsRestrictedWhileLocked` key of your Intents extension’s `Info.plist` file.

## Topics

### Creating the Intent Object

[`init(recipients: [INPerson]?, outgoingMessageType: INOutgoingMessageType, content: String?, speakableGroupName: INSpeakableString?, conversationIdentifier: String?, serviceName: String?, sender: INPerson?, attachments: [INSendMessageAttachment]?)`](/documentation/Intents/INSendMessageIntent/init(recipients:outgoingMessageType:content:speakableGroupName:conversationIdentifier:serviceName:sender:attachments:))

Creates a send message intent object with the specified content and recipients.

### Specifying Details About a Message

[`var recipients: [INPerson]?`](/documentation/Intents/INSendMessageIntent/recipients)

The array of users to receive the message.

[`var outgoingMessageType: INOutgoingMessageType`](/documentation/Intents/INSendMessageIntent/outgoingMessageType)

The format of the message contents.

[`var conversationIdentifier: String?`](/documentation/Intents/INSendMessageIntent/conversationIdentifier)

The identifier for the conversation.

[`var speakableGroupName: INSpeakableString?`](/documentation/Intents/INSendMessageIntent/speakableGroupName)

The name of the group to receive the message.

[`var content: String?`](/documentation/Intents/INSendMessageIntent/content)

The content of the message.

[`var serviceName: String?`](/documentation/Intents/INSendMessageIntent/serviceName)

The service to use when sending the message.

[`var sender: INPerson?`](/documentation/Intents/INSendMessageIntent/sender)

The person or account that’s sending the message.

[`var attachments: [INSendMessageAttachment]?`](/documentation/Intents/INSendMessageIntent/attachments)

Audio files to include in the message.

### Deprecated Symbols

[`convenience init(recipients: [INPerson]?, content: String?, speakableGroupName: INSpeakableString?, conversationIdentifier: String?, serviceName: String?, sender: INPerson?)`](/documentation/Intents/INSendMessageIntent/init(recipients:content:speakableGroupName:conversationIdentifier:serviceName:sender:))

Initializes a send message intent object with the specified content and recipients.

[`convenience init(recipients: [INPerson]?, content: String?, groupName: String?, serviceName: String?, sender: INPerson?)`](/documentation/Intents/INSendMessageIntent/init(recipients:content:groupName:serviceName:sender:))

Initializes a send message intent object with the specified content and recipients.

[`convenience init(recipients: [INPerson]?, outgoingMessageType: INOutgoingMessageType, content: String?, speakableGroupName: INSpeakableString?, conversationIdentifier: String?, serviceName: String?, sender: INPerson?)`](/documentation/Intents/INSendMessageIntent/init(recipients:outgoingMessageType:content:speakableGroupName:conversationIdentifier:serviceName:sender:))

Initializes a send message intent object with the specified content and recipients.

[`var groupName: String?`](/documentation/Intents/INSendMessageIntent/groupName)

The name of the group to receive the message.

## Relationships

### Conforms To

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`INIntentSetImageKeyPath`](/documentation/Intents/INIntentSetImageKeyPath)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`UNNotificationContentProviding`](/documentation/UserNotifications/UNNotificationContentProviding)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Escapable`](/documentation/Swift/Escapable)

[`Hashable`](/documentation/Swift/Hashable)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`Copyable`](/documentation/Swift/Copyable)

[`Equatable`](/documentation/Swift/Equatable)

### Inherits From

[`INIntent`](/documentation/Intents/INIntent)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)