> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NSMessagingAgent

> SMS and other external messaging systems.

SMS and other external messaging systems.

## Constructors

### NSMessagingAgent()

```crmscript theme={null}
NSMessagingAgent
```

SMS and other external messaging systems.

## Methods

## CreateMessage(NSIncomingMessage)

Creates a new message and insert it in the message queue. (inbox)

```crmscript theme={null}
Void CreateMessage(NSIncomingMessage incomingMessage)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

## GetDeliveryStatus(Integer\[])

Gets delivery status

```crmscript theme={null}
NSMessageDeliveryStatus[] GetDeliveryStatus(Integer[] messagingIds)
```

**Returns:** [CRMScript.NetServer.NSMessageDeliveryStatus](CRMScript.NetServer.NSMessageDeliveryStatus)\[]

## GetPlugins()

```crmscript theme={null}
NSProviderInfo[] GetPlugins()
```

**Returns:** [CRMScript.NetServer.NSProviderInfo](CRMScript.NetServer.NSProviderInfo)\[]

## SendMessages(String,NSOutgoingMessage\[])

Sends an array of messages

```crmscript theme={null}
NSMessageDeliveryStatus[] SendMessages(String plugin, NSOutgoingMessage[] outgoingMessages)
```

**Returns:** [CRMScript.NetServer.NSMessageDeliveryStatus](CRMScript.NetServer.NSMessageDeliveryStatus)\[]

**Example:**

```crmscript theme={null}
NSMessagingAgent agent;
String plugin;
NSOutgoingMessage[] outgoingMessages;
NSMessageDeliveryStatus[] res = agent.SendMessages(plugin, outgoingMessages);
```

## SendMessagesWithConfig(String)

Sends an array of messages using given config

```crmscript theme={null}
NSMessageDeliveryStatus[] SendMessagesWithConfig(String plugin, NSOutgoingMessage[] outgoingMessages, Map config)
```

**Returns:** [CRMScript.NetServer.NSMessageDeliveryStatus](CRMScript.NetServer.NSMessageDeliveryStatus)\[]

**Example:**

```crmscript theme={null}
NSMessagingAgent agent;
String plugin;
NSOutgoingMessage[] outgoingMessages;
Map config;
NSMessageDeliveryStatus[] res = agent.SendMessagesWithConfig(plugin, outgoingMessages, config);
```

## SetDeliveryStatus(String,String,Integer,String)

Sets or change the delivery status on an outgoing message.

```crmscript theme={null}
Void SetDeliveryStatus(String plugin, String externalMessageId, Integer status, String statusDescription)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)


## Related topics

- [SuperOffice.WebApi.Agents.MessagingAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.MessagingAgent.md)
- [SuperOffice.WebApi.Agents.IMessagingAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.IMessagingAgent.md)
- [NetServer Messaging element](/en/onsite/web-config/messaging.md)
- [Get Delivery Status](/en/api/reference/restful/agent/messaging_agent/get-delivery-status.md)
- [Get Plugins](/en/api/reference/restful/agent/messaging_agent/get-plugins.md)
- [Send Messages](/en/api/reference/restful/agent/messaging_agent/send-messages.md)
