# Messaging basics

Learn how messaging works, what kinds of messages Airship supports, and the tools you use to create them.

## How messaging works

In order to send messages, you need the following:

- An **app or website** integrated with the Airship software developer kit (SDK) — The SDK enables communication with mobile devices and web browsers. If you are only sending SMS or email notifications, SDK integration is not required. Notifications sent to [Open Channels](#message-types) also do not require SDK integration, but your webhook server must be able to process and interpret a JSON payload.

- An **audience** of your app's or website's opted-in users — An exception to this is [Apple News](https://www.airship.com/docs/reference/glossary/#apple_news) notifications, which are sent to Apple News subscribers. Apple News audience management is not handled via Airship.

- A **container** for your messages — In Airship, this container is a *project*. You create a project in the [Dashboard](https://www.airship.com/docs/reference/glossary/#dashboard) for each app or website you want to communicate with. Almost everything you do with Airship, including creating messages, happens inside a project. A project does the following:

   * Serves as a record for your app, website, and any other channels you use to communicate with your audience
   * Stores your message history, message templates, audience and analytic data, channel configuration, default message configuration settings, and more
   * Contains the keys required to talk to various notification services

With the above in place:

1. **You create a message** in the dashboard or using the API.

1. **Your app or website interprets the message** via the Airship SDK, displaying or delivering it to users. SMS, email, and Apple News notifications are instead interpreted by a native client.

1. **Users see your message.** When and where they see the message depends on message type, delivery settings, and automation.

## Channels

When you read "channel," it could mean one of three things:

* **Engagement** channel — A communication medium supported by the Airship Service. Supported channels include app, web, email, SMS, and Open Channels.

* **Development** channel — An instance representing an entity addressable via the Airship Service, such as an iOS device, email address, SMS number, or web browser. 

* **Channel ID** — An Airship-specific unique identifier for a development channel instance, such as a mobile device, web browser, or email address.

We specify *Channel ID* as such in our documentation. *Engagement* and *development* are generally implied by context. For more information, see [Intro to Channels](https://www.airship.com/docs/guides/getting-started/developers/channels-intro/).

## Message types

Message type availability varies per engagement channel:

| Message type | Description | Channels | Send from |
| --- | --- | --- | --- |
| **Push notification** | A push notification is a message that can appear on any screen on a mobile device. Push notifications appear as banners. [Learn more](https://www.airship.com/docs/guides/messaging/messages/content/app/push-notifications/) | App | Dashboard, API |
| **Web push notification** | A web push notification is a message that appears in the top or bottom right corner of a web browser or in a notification center. On mobile devices, web push notifications appear similar to push notifications. [Learn more](https://www.airship.com/docs/guides/features/messaging/push-notifications/) | Web | Dashboard, API |
| **Message Center** | Message Center is both a place in your app where you can display persistent rich messages, including HTML, video, etc., and a message type. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). [Learn more](https://www.airship.com/docs/guides/features/messaging/message-center/) | App | Dashboard, API |
| **In-app message** | An in-app message is a message that appears inside of your app. You can send in-app messages to your entire app audience, not just users who have opted-in to push notifications. The standard format, as opposed to In-App Automation, is a banner that slides downward or upward from the top or bottom of a device screen. [Learn more](https://www.airship.com/docs/guides/messaging/messages/content/app/in-app-messages/) | App | Dashboard, API |
| **In-App Automation** | In-App Automation refers to messages cached on users' devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. [Learn more](https://www.airship.com/docs/guides/features/messaging/in-app-automation/) | App | Dashboard |
| **Scene** | A Scene is a mobile app or web experience of one or more screens displayed with fully native UI components in real time, providing immediate, contextual responses to user behaviors. Scenes can be presented in full-screen, modal, or embedded format using the default swipe/click mode or as a Story. They can also contain survey questions. [Learn more](https://www.airship.com/docs/guides/features/messaging/scenes/about/) | App, Web | Dashboard |
| **Email** | Email is an HTML or plain-text message that you send to registered users. [Learn more](https://www.airship.com/docs/guides/features/messaging/email/) | Email | Dashboard, API |
| **SMS** | An SMS is a message that you can send to an MSISDN (phone number) over the SMMP protocol to devices that have opted in for a specific sender ID (long or short code). SMS messages appear in recipients' native SMS clients. Generally speaking, SMS is inclusive of MMS and RCS. [Learn more](https://www.airship.com/docs/guides/messaging/messages/content/sms/) | SMS | Dashboard, API |
| **Open channel** | An Open channel message can be sent to any medium that can accept a JSON payload. [Learn more](https://www.airship.com/docs/guides/features/messaging/open-channels/) | Open channel | Dashboard, API |

## Creating and sending messages

You can create and send messages in three ways: with a Composer, in the Journey map, or through the Airship API.

### Composers

A Composer is a dashboard tool for creating a message in a linear, step-by-step flow.

Use a Composer for single messages:

| Composer | Description | Supported channels | Multi-channel support | Documentation |
| --- | --- | --- | --- | --- |
| **Message** | Send a single message immediately, scheduled, or recurring. | App<sup>1</sup>, web, email, SMS, open | Yes | [Create a Message](https://www.airship.com/docs/guides/messaging/messages/create/) |
| **Automation** | Automatically send a message to users when users meet certain conditions. | App<sup>1</sup>, web, email, SMS, open | Yes | [Create an Automation](https://www.airship.com/docs/guides/messaging/messages/sequences/create-automation/) |
| **Scene** | Display a [Scene](https://www.airship.com/docs/reference/glossary/#scene) when users meet certain conditions. | App, web | Yes | [Create a Scene](https://www.airship.com/docs/guides/messaging/in-app-experiences/scenes/create/) |
| **In-App Automation** | Display an [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa) when users meet certain conditions. | App | No | [Create an In-App Automation](https://www.airship.com/docs/guides/messaging/in-app-experiences/in-app-automation/create/) |
| **Apple News** | Send a push notification that links to an Apple News story. | App | No | [Apple News](https://www.airship.com/docs/guides/messaging/messages/apple-news/) |

<sup>1. For the app channel, the Message and Automation Composers support push notifications, in-app messages, and Message Center.</sup>

### Journey map

A Journey is a continuous user experience of connected Sequences, Scenes and/or In-App Automations. The Journey map is a dashboard tool for building those messages, either individually or connected to create a Journey.

Sequences support the same channels and message types as the [Message and Automation Composers](#composers). See [Create a Sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/) and [Journeys](https://www.airship.com/docs/guides/features/orchestration-experimentation/journeys/).

### API

To send messages using the API, see the [Airship API reference](https://www.airship.com/docs/developer/rest-api/ua/). The API does not support Sequences, Scenes, In-App Automations, or Apple News. See [Message types](#message-types) for API support per message type.

## Reporting

After you send, measure performance and engagement. See [About reports](https://www.airship.com/docs/guides/reports/about/).

You can also set up [integrations with Airship partners](https://www.airship.com/docs/integrations/) and use [Real-Time Data Streaming](https://www.airship.com/docs/reference/glossary/#rtds) to send your Airship events to an outside system.
