# Commerce & Loyalty Commerce, subscription, and loyalty partners integrated with Airship help you engage customers across purchase, retention, and rewards moments. # Purchasely > Send Purchasely events to Airship and design personalized automations. Purchasely helps you build and grow your mobile revenue by streamlining in-app purchase integration. You can send Purchasely events as [custom events](https://www.airship.com/docs/reference/glossary/#custom_event) to Airship and design personalized [Automations](https://www.airship.com/docs/guides/messaging/messages/sequences/about/) based on your customers' purchase behavior. ## Purchasely Integration Requirements * **Accounts** 1. Purchasely 1. Airship — Must include messaging * **Airship project** * The Airship SDK must use the same user identity as the Purchasely SDK. ## Configuring the Purchasely Integration In Airship: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Partner Integrations**. 1. Select **Purchasely**. 1. Select **Configure** for the inbound integration and follow the onscreen instructions to: * Create [custom events](https://www.airship.com/docs/reference/glossary/#custom_event) and an authentication token. Purchasely uses the token to communicate with your project in Airship. * Configure Airship as an external integration in Purchasely. For additional detail, see [Purchasely's documentation](https://docs.purchasely.com/integrations/airship). # RevenueCat > RevenueCat is a powerful and reliable in-app purchase server with cross-platform support. You can use [RevenueCat](https://docs.revenuecat.com/docs/welcome) events to send [custom events](https://www.airship.com/docs/reference/glossary/#custom_event) and trigger messages with Airship. You can design personalized [Airship Automations and Sequences](https://www.airship.com/docs/guides/messaging/messages/sequences/about/) based on purchase behavior. ## RevenueCat Integration Requirements * **Accounts** 1. RevenueCat — [Pro plan](https://www.revenuecat.com/pricing) 1. Airship — Must include messaging * **Airship project** * The Airship SDK must use the same user identity as the RevenueCat SDK. ## Configuring the RevenueCat Integration In Airship: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Partner Integrations**. 1. Select **RevenueCat**. 1. Select **Configure** for the inbound integration and follow the onscreen instructions to: * Create [custom events](https://www.airship.com/docs/reference/glossary/#custom_event) and an authentication token. RevenueCat uses the token to communicate with your project in Airship. * Configure the Airship integration in RevenueCat. For additional detail, see [RevenueCat's documentation](https://docs.revenuecat.com/docs/airship). # Shopify > Shopify is an e-commerce platform for online stores and retail point of sale (POS) systems. Our Shopify integration enables your Shopify store for web notifications and automatically captures cart-, checkout-, and order-related events, e.g., *order fulfilled*, *checkout created*. Use these events to trigger Airship Sequences and automations in your messaging campaigns. > **Note:** The events configured for this integration are implemented as [custom events](https://www.airship.com/docs/reference/glossary/#custom_event) in Airship. > > Custom events include additional data from Shopify--properties that can be used > to personalize messages in Airship. These include things like items in a > customer's cart, the total purchase value, customer first name, or the URL for > an abandoned cart. ## Shopify Integration Requirements * **Accounts** 1. Shopify 1. Airship — Must include messaging * **Airship project** 1. Your merchant install link. Open an [Airship Support ticket](https://support.airship.com/), to request it. Provide your merchant myshopify.com domain in your request. For example, `pint-mart.myshopify.com`. **The link expires after 7 days.** 1. Your Web SDK bundle. To download it: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Channels**, select **Web**. 1. Select **Update**, then **Download SDK Bundle**. ## Configuring the Shopify Integration In Airship: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Partner Integrations**. 1. Select **Shopify**. 1. Select **Configure** for the inbound integration and follow the onscreen instructions to: * Create [custom events](https://www.airship.com/docs/reference/glossary/#custom_event) and an authentication token. Shopify uses the token to communicate with your project in Airship. * Log in to Shopify, open your merchant install link, and install the *Automated Web Notification* app. * Upload your SDK bundle zip file. ## Configuring Notifications With the Airship SDK bundle uploaded and configured, you can now customize the user experience for customers opting in for notifications. You have multiple attributes at your disposal. In Shopify: 1. On the configuration page of the Automated Web Notification app, go to the **Opt-In Display** section and select **Add opt-in**.

In the expanded **Opt-In Display** section, you can now edit various attributes of the notification: the style of the notification (whether it should appear as a prompt or a bell), the text of the heading and text, color, and position on the screen where it should appear. 1. Select **Save** to apply your changes. > **Note:** Users trigger the prompt when they view a blog post or a product page. The > prompt displays on *checkout* or *cart* pages. The prompt disappears > after 60 seconds unless the user interacts with it. > > If the user does not choose to opt in to notifications, the prompt will be > triggered again in 2 weeks. You can adjust the timing of the re-prompt in your Shopify admin for the Automated Web Notifications app. ## Supported Custom Events Most custom events are generated via webhooks, which are sent by Shopify. In some cases, such as **shopify_cart_changed**, an event originates from the browser. The following custom events are supported: | Event Name | Action | |------------------------------------|------------------------------------------------------------------------------------------------------------------------| | **shopify_cart_changed** | A user took any action in the browser that modified the contents of or created a cart. | | **shopify_checkout_created** | A user started the checkout process for a cart. | | **shopify_checkout_updated** | A user took any action that modified the status of a checkout. Triggered as a user completes each section of checkout. | | **shopify_order_created** | A user has completed a checkout and submitted an order. | | **shopify_order_fulfilled** | A shop owner has marked an order as fulfilled. | | **shopify_order_fulfilled_update** | A shipping provider has provided a status update for an order. | # Talon.One > Use Airship's external data feeds to fetch personalized promotions and loyalty rewards from Talon.One. Airship's [external data feeds](https://www.airship.com/docs/reference/glossary/#xdf) can fetch personalized promotions and loyalty rewards from [Talon.One](https://www.talon.one/) at message send time. This allows you to deliver highly targeted offers to your users through Airship's messaging channels, with the promotion logic handled by Talon.One's powerful engine. This integration approach provides the following capabilities: * Fetch real-time promotion data from Talon.One when sending messages. * Personalize messages with dynamic coupon codes and offers. * Leverage Talon.One's promotion engine for eligibility and targeting. * Maintain a single source of truth for promotions in Talon.One. ## Talon.One integration requirements This integration requires the following: * **Accounts** 1. Talon.One — The account must have permissions to manage API keys. 1. Airship — The account must include messaging. * **External API** — See [External API requirements](https://www.airship.com/docs/guides/personalization/sources/external-data-feeds/#external-api-requirements) in *External Data Feeds*. You must have appropriate permissions in both systems. ## Configuring the integration To set up the integration, you will create an API key and campaign in Talon.One and an external data feed in Airship. Then, you can reference the feed in your Airship messages. ### Create an API Key In Talon.One: 1. Go to **Apps** and select the application you want to integrate with Airship. 1. Select **Settings**, then **Integration API Keys**. 1. Select **+ Create API Key**. 1. Enter a key name and set an expiration date. 1. For **Third-party integration**, select **Yes**. 1. For **Platform**, select **Customer Engagement Platform**. 1. Select **Create API Key**. ### Create a campaign In Talon.One: 1. Go to **Apps** and select the application you want to integrate with Airship. 1. Select **+Create Campaign** and enable the **Coupons** option. 1. Select **Create Campaign**. 1. Copy the following values for use in Airship: * Destination hostname * Authorization key * Customer engagement hostname 1. In the browser address bar, copy the URL to capture the Talon.One applicationId and campaignId. The URL also contains the destination hostname. For the example `https://internal.europe-west1.talon.one/applications/359/campaigns/7777`, these are the values for each section:

* Destination hostname: internal.europe-west1.talon.one * applicationId: 359 * campaignID: 777

You can return to the URL at any time by editing the campaign.

### Create an External Data Feed See [Create a feed](https://www.airship.com/docs/guides/personalization/sources/external-data-feeds/#create-a-feed) in *External Data Feeds* for information about each setting. The following information is specific to requirements for the Talon.One integration. In Airship: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **External Data Feeds**. 1. Select **Create External Data Feed**. 1. Configure the feed using the following information: | Setting | Steps | | --- | --- | | **Request URL** | Configure the URL to point to your Talon.One API endpoint: `https://integration.talon.one/customer_engagement/coupon?applicationId=applicationId&campaignId=campaignId&externalCampaignId=[[externalCampaignId]]&identifier={{channel_id}}`.

Replace the parameter values with your actual Talon.One IDs obtained from your campaign URL and add a default value for externalCampaignId, for example, `t1`. | | **Headers** | Enter a key/value pair for each:

- `Authorization` : Your Talon.One API key
- `Customer-Engagement-Platform-Name` : `Airship`
- `Destination-Hostname` : Your destination hostname | | **Object locations** | Add an object location for the data you want to access. Both the name and location should have value `coupon`. The identifier could be any value available in Airship, including [named user](https://www.airship.com/docs/reference/glossary/#named_user) or any [attribute](https://www.airship.com/docs/reference/glossary/#attribute). For example, perhaps there is a Loyalty ID with your end users in both platforms stored as an attribute. | {class="table-col-1-30"} 1. Select **Save** to create the feed in your project. ## Using Talon.One data in Airship messages You add your data feed to messages in two parts: 1. Formatting the message content 1. Determining how to handle the message if the feed fails For full documentation, see [Using a feed in messages](https://www.airship.com/docs/guides/personalization/sources/external-data-feeds/#using-a-feed-in-messages) in *External Data Feeds*. ### Reference the feed in message content The JSON response from Talon.One will look something like this: ```json { "ID": 20190408, "ApplicationID": 398, "CampaignID": 5671, "Value": "EW-1BC2", "StartDate": "2021-09-30T15:35:02.371569+02:00", "ExpiryDate": "2024-10-03T15:35:02.371569+02:00", "RecipientIntegrationID": "URN-GV8294NV", "UsageLimit": 1, "Attributes": { "email": "user@example.com", "country": "DE" } } ``` When creating message content, use the feed block syntax to access Talon.One data: ```handlebars {{#feed "talon_promotions" as |data|}} Here's your exclusive offer: {{data.Value}} {{/feed}} ``` This should result in an alert with a personalized coupon code: ![An example coupon code from Talon.One data](https://www.airship.com/docs/images/integrations/talon-one-alert-example_hu_b19629bd260f1108.webp) *An example coupon code from Talon.One data* ### Configure feed failure behavior In the Delivery step of your message, under **External data feed options**, set the behavior that should occur if the feed fails: * **Abort sending the message** — Use this option if the promotion is critical. * **Send message without this data** — Use this option if you have fallback content. ## Additional resources See [Talon.One documentation](https://docs.talon.one) for additional information, including [Create coupon](https://docs.talon.one/third-party-api#tag/Customer-engagement-platforms/operation/cep/createCoupon) in *Customer engagement platform*.