# Messaging > This is the Messaging section of the Customer.io documentation. For the full documentation index, see [llms.txt](https://docs.customer.io/llms.txt). - [Assets library: store files](https://docs.customer.io/messaging/channels/asset-library.md): Your workspace has an Assets library where you can store images and PDFs for reuse across messages (email, in-app, etc.). - [Introduction to creating emails](https://docs.customer.io/messaging/channels/email/2-email-basics.md): This article helps you understand how to create emails in Customer.io at a high level. - [Email attachments](https://docs.customer.io/messaging/channels/email/attachments.md): Customer.io doesn - [Transitioning to Customer.io as a sender](https://docs.customer.io/messaging/channels/email/deliverability-getting-started.md): There will always be some measure of deliverability performance variability when you start sending from a new email provider. This article should help you navigate this critical transition and avoid problems. - [Set up anonymized email relay addresses](https://docs.customer.io/messaging/channels/email/deliverability/anonymized-relay-addresses.md): If you have data residency or PII compliance requirements that prevent you from storing real email addresses outside a specific jurisdiction, you can use synthetic email addresses with an email relay. Customer.io sends messages to the synthetic addresses, and your relay forwards them to the real recipients. This keeps real email addresses out of Customer.io entirely. - [Authenticating for Apple private email relay](https://docs.customer.io/messaging/channels/email/deliverability/authenticating-for-apple-private-email-relay.md): If your app or website utilizes the [Sign In with Apple](https://support.apple.com/en-us/HT210318) login service, then your customers have the optional setting to receive emails from you through the Apple Private Email Relay service. This lets customers hide their email addresses as an added layer of privacy when signing up and logging into your app. - [Domain authentication](https://docs.customer.io/messaging/channels/email/deliverability/authentication.md): You will need to add certain records to your DNS provider to allow Customer.io to send emails using your domain. - [Email deliverability best practices](https://docs.customer.io/messaging/channels/email/deliverability/best-practices.md): Email deliverability is whether or not the emails you are sending are reaching the inbox of your recipients. There are a number of factors that can directly influence whether or not your emails arrive in the inbox. All of these best practice guidelines should be addressed to ensure maximum deliverability. - [Using multiple SMTP servers](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/multiple-smtp-servers.md): You can configure multiple custom SMTP servers to have greater control over your deliverability. If your SMTP provider requires you to use separate servers for bulk and transactional emails, you can configure multiple servers in your custom SMTP settings. - [Use your Mailgun account](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/triggered-lifecycle-email-with-mailgun.md): You can use your Mailgun account to send email through Customer.io with no loss in functionality. - [Use your Mailjet account](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/triggered-lifecycle-email-with-mailjet.md): You can use your Mailjet account to send email through Customer.io with no loss in functionality. - [Use your Mandrill account](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/triggered-lifecycle-email-with-mandrill.md): You can use your Mailchimp Transactional (Mandrill) account to send email through Customer.io with no loss in functionality. - [Use your Oracle Dyn account](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/triggered-lifecycle-email-with-oracle-dyn.md): You can use your Oracle Dyn account to send email through Customer.io with no loss in functionality. - [Use your Postmark account](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/triggered-lifecycle-email-with-postmark.md): You can use your Postmark account to send email through Customer.io with no loss in functionality. - [Use your SendGrid account](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/triggered-lifecycle-email-with-sendgrid.md): You can use your SendGrid account to send email through Customer.io with no loss in functionality. - [Use your Sparkpost account](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/triggered-lifecycle-email-with-sparkpost.md): You can use your Sparkpost account to send email through Customer.io with no loss in functionality. - [Use your own SMTP server](https://docs.customer.io/messaging/channels/email/deliverability/custom-smtp/use-your-smtp-server.md): By default, Customer.io takes care of your email delivery. However, you can send mail through any other SMTP server if you - [Custom unsubscribe links: staying compliant with list-unsubscribe-post (RFC 8058) requirements](https://docs.customer.io/messaging/channels/email/deliverability/custom-unsubscribe-links.md): Offering an unsubscribe option to give subscribers the ability to opt out of your marketing messages is not only standard best practice, it’s now a requirement in Google and Yahoo’s [Bulk Sender 2024 Requirements](https://customer.io/blog/email-sending-requirements-gmail-yahoo/). If you are using a custom unsubscribe solution, you’ll need to successfully implement [RFC 8058 List-unsubscribe-post](https://datatracker.ietf.org/doc/html/rfc8058) before June 1st, 2024. - [Delete an email sending domain](https://docs.customer.io/messaging/channels/email/deliverability/delete-domain.md): You can delete a sending domain when it - [Safely warm up your sending domain](https://docs.customer.io/messaging/channels/email/deliverability/domain-warming.md): To ensure your emails successfully reach your recipients, it - [Email suppression lists](https://docs.customer.io/messaging/channels/email/deliverability/esp-suppression.md): Email service providers (ESP) maintain lists of suppressed email addresses, preventing you from messaging people who have experienced a hard bounce or logged a spam complaint. If you manage email deliveries through Customer.io (you don - [Google Postmaster Tools](https://docs.customer.io/messaging/channels/email/deliverability/google-postmaster-tools.md): Google Postmaster Tools (GPT) is a service Gmail provides free of charge that shows data about your sending reputation and Gmail spam rates. (Gmail does not notify senders when emails are marked as spam for privacy reasons.) Senders must stay below a 0.3% spam threshold in GPT. - [IP addresses: shared vs dedicated](https://docs.customer.io/messaging/channels/email/deliverability/ip-addresses.md): You can use our shared IP pools or dedicated IPs to send messages to your customers. - [Track links with your domain](https://docs.customer.io/messaging/channels/email/deliverability/link-tracking-custom-domain.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Spamhaus blocklist listings](https://docs.customer.io/messaging/channels/email/deliverability/spamhaus-blocklist.md): If your sending domain appears on a Spamhaus blocklist, your emails may be rejected or filtered to spam. Learn what a listing means and how to resolve it. - [Verify deliverable email addresses with Kickbox](https://docs.customer.io/messaging/channels/email/deliverability/verify-email-deliverable-kickbox.md): Sending messages to undeliverable email addresses can increase your bounce rate and impact overall deliverability. You can use Kickbox to verify the deliverability of addresses before you send messages, helping you maintain high deliverability. - [How to manage suppressions](https://docs.customer.io/messaging/channels/email/deliverability/workspace-suppressions.md): The **Workspace suppressions** page gives you a single place to review the people and email addresses that Customer.io won - [Choose the right email editor](https://docs.customer.io/messaging/channels/email/editors/choose.md): We offer several editors for email creation. Check out our newest editor, Design Studio! If that doesn - [Email code editor](https://docs.customer.io/messaging/channels/email/editors/code-editor.md): If you - [Drag-and-drop editor FAQ](https://docs.customer.io/messaging/channels/email/editors/drag-and-drop-faq.md): This page provides answers to common questions and can help you troubleshoot problems when drafting emails with the drag-and-drop editor. - [Drag-and-drop emails: the basics](https://docs.customer.io/messaging/channels/email/editors/drag-and-drop.md): Drag-and-drop emails consist of content, rows, and settings. **Content** blocks are discrete pieces of email content, images, text, etc. **Rows** provide the structure of your email—they determine how many pieces of content you can fit across the width of your message. - [Troubleshooting your drag-and-drop emails](https://docs.customer.io/messaging/channels/email/editors/troubleshooting-email-design.md): We - [Email: getting started](https://docs.customer.io/messaging/channels/email/getting-started.md): There are two options for sending mail through Customer.io: you can deliver email through us, or use your existing account with a delivery provider. - [How do I add an avatar/logo to my emails?](https://docs.customer.io/messaging/channels/email/headers/adding-sender-image.md): Inbox avatars appear next to the From name in your recipients - [Set custom email headers](https://docs.customer.io/messaging/channels/email/headers/custom-mail-headers.md): Email headers specify specific sending and return options for an email. When sending via SMTP, you can use custom headers to do a great many things: customize messages, tag them, track them, or control specific behaviors. - [Set custom preheader/preview text](https://docs.customer.io/messaging/channels/email/headers/custom-preheader-text.md): An email - [What does the fake BCC option do?](https://docs.customer.io/messaging/channels/email/headers/fake-bcc.md): You can add a BCC address to your emails to keep certain teams in the loop while maintaining their privacy. BCC addresses won - [Create multiple from addresses](https://docs.customer.io/messaging/channels/email/headers/multiple-from-addresses.md): You may have messages that should come from different email addresses depending on your use case—onboarding emails from customer success managers, newsletters from a general company address, etc. You can add multiple from addresses to fit your needs. - [HTML and CSS email vs. web](https://docs.customer.io/messaging/channels/email/layouts/1-html-and-css.md): Quite often, our customers code their own email templates or receive them from a developer, and we - [Introduction to email layouts](https://docs.customer.io/messaging/channels/email/layouts/3-layouts-and-customerio.md): When using our Rich Text and Code editors to design your email templates, there are two parts to emails: the content and the layout. The **layout** is everything except the body of your email. Your content, or message, fits *into* the layout. - [Resources for templates, code, and best practices](https://docs.customer.io/messaging/channels/email/layouts/4-email-design-resources.md): This page contains resources to help you develop emails to support your use cases and audience. - [Adapting Foundation's basic template](https://docs.customer.io/messaging/channels/email/layouts/5-adapt-foundation-basic.md): [Foundation for Emails](https://get.foundation/emails/) is a framework; a code bundle that gives you sets of pre-built components and makes it easier to build responsive emails. That way, you don - [Adapting MailChimp's two-column template](https://docs.customer.io/messaging/channels/email/layouts/6-adapt-mc-twocol.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [AMP for email](https://docs.customer.io/messaging/channels/email/layouts/amp-for-email.md): Engage your audience with dynamic content and reduce the amount of times you have to link your customers out. [AMP](https://amp.dev/about/email) lets your customers complete surveys, RSVP to events, respond to comments, and more from within your emails. - [Archive layouts](https://docs.customer.io/messaging/channels/email/layouts/archiving-layouts.md): When you archive a layout, you can keep using it in existing workflows, but you can - [CSS pre-processing](https://docs.customer.io/messaging/channels/email/layouts/css-pre-processing.md): By default, we pre-process CSS for emails created in our rich text or code editors, never our drag and drop editor. If you - [Customizing email layouts](https://docs.customer.io/messaging/channels/email/layouts/customizing-layout-starters.md): Customize our starter layouts to quickly produce reusable email layouts that fit your brand and style. - [Adding a view in browser link](https://docs.customer.io/messaging/channels/email/layouts/view-in-browser.md): Add a link to your emails so people can view a web version of the message in their browser. View in browser links only work in emails—they aren - [Manage consent for open-tracking](https://docs.customer.io/messaging/channels/email/open-tracking-consent.md): Some regions require recipients to give consent before you can track their open activity on emails. Customer.io lets you honor that consent per contact—without turning tracking off for your whole audience. - [Code editor: send Trustpilot reviews](https://docs.customer.io/messaging/channels/email/recipes/bcc-trustpilot.md): Send Trustpilot reviews as emails using our code editor. - [Gmail promotions](https://docs.customer.io/messaging/channels/email/recipes/gmail-promotions.md): Google has added annotation support for emails that appear in the Promotions tab of the Gmail app. This means that your promotional emails have more opportunities to make an impression beyond the subject and preheader. You can highlight incentives, share key information from your message, and stand out in the crowded inbox. - [Welcome email copy](https://docs.customer.io/messaging/channels/email/recipes/welcome-email-copy.md): Got email writer - [Test your emails](https://docs.customer.io/messaging/channels/email/testing-emails.md): After you create your first email, send yourself a test before activating your automation to make sure your emails render as you - [Image requirements](https://docs.customer.io/messaging/channels/image-support.md): The types of images and media you can use, and their maximum file sizes, depend largely on the platform you send messages to (email, mobile push, slack, etc). - [FAQ](https://docs.customer.io/messaging/channels/in-app/anonymous/anonymous-faq.md): Frequently asked questions about anonymous in-app messages and forms. - [Anonymous in-app forms](https://docs.customer.io/messaging/channels/in-app/anonymous/forms.md): You can send anonymous forms to your audience to collect open text feedback from visitors you haven - [Anonymous messages](https://docs.customer.io/messaging/channels/in-app/anonymous/overview.md): You can show in-app messages to anonymous visitors to your website and convert them to members of your audience by inviting them to create an account, become users, or make their first purchase. - [In-app component reference](https://docs.customer.io/messaging/channels/in-app/editor/components.md): In-app messages use an HTML-like syntax with components similar to HTML elements beginning with `x-`. We - [Legacy in-app editor](https://docs.customer.io/messaging/channels/in-app/editor/legacy-in-app-editor.md): If you built messages before July 8, 2024, you - [In-app visual editor](https://docs.customer.io/messaging/channels/in-app/editor/new-in-app-editor.md): Draft in-app messages in your automation or broadcast workflow. Our in-app editor it easy to build, similar to the way you build emails in Customer.io. And, like our email editor, you can even switch to a full HTML-code view to edit tags and classes directly. - [In-app FAQ](https://docs.customer.io/messaging/channels/in-app/faq.md): Frequently asked questions about in-app messages in Customer.io - [Lead capture](https://docs.customer.io/messaging/channels/in-app/forms/lead-form.md): Use the Lead Form component for in-app messages to gather the names and email addresses of people who see your messages. - [In-app forms](https://docs.customer.io/messaging/channels/in-app/forms/overview.md): You can use in-app messages as forms to collect feedback from your audience. - [Surveys](https://docs.customer.io/messaging/channels/in-app/forms/surveys.md): With Customer.io, you can send web and in-app surveys (NPS, CSAT, etc) using different arrangements of buttons. We track the buttons your audience clicks, and you can set up conditional branches in your automations or broadcasts to handle different responses to your survey. - [Get started: web and in-app messages](https://docs.customer.io/messaging/channels/in-app/getting-started.md): In-app messages let you incorporate dynamic, personalized content into your app or website with very little development or engineering and help you continue conversations across channels. By personalizing messages based on the activities your audience performs in- or outside your app, you can maintain highly relevant interactions with your audience. - [Global styles for in-app messages](https://docs.customer.io/messaging/channels/in-app/global-styles-in-app.md): In Design Studio, you can define colors, fonts, and more in Global Styles to reuse them across your messages. This way, you spend less time adding the same branding to each message. Global styles apply to emails made in Design Studio and in-app messages. - [Compose JSON messages in the advanced editor](https://docs.customer.io/messaging/channels/in-app/inbox/advanced/compose-json.md): Author inbox messages as a JSON payload using the advanced editor in an automation, broadcast, or transactional message. - [Display inbox messages in your app](https://docs.customer.io/messaging/channels/in-app/inbox/advanced/display-messages.md): Use the JavaScript SDK - [Advanced: build your own inbox](https://docs.customer.io/messaging/channels/in-app/inbox/advanced/overview.md): If you want more control over the look, feel, and placement of your inbox and messages, you can build your own inbox and style messages in your own client. - [Set up your notification inbox](https://docs.customer.io/messaging/channels/in-app/inbox/get-started.md): You can create a notification inbox in your workspace and publish it to your web app or mobile app. This gives you a place to display messages to your audience that they can access at their leisure. - [Inbox message metrics](https://docs.customer.io/messaging/channels/in-app/inbox/metrics.md): When you send an inbox message, it - [Trigger inbox messages from your backend](https://docs.customer.io/messaging/channels/in-app/inbox/send-inbox-txnl.md): You can send inbox messages in response to user activity directly from your backend. While we call this a *transactional* message, it - [Send inbox messages](https://docs.customer.io/messaging/channels/in-app/inbox/send-inbox.md): You can send inbox messages as a part of an automation or broadcast workflow. - [Inline in-app messages](https://docs.customer.io/messaging/channels/in-app/inline-in-app.md): Unlike traditional in-app messages, which appear on top of your app or website, inline in-app messages act like a part of the content on your page. They let you dynamically populate parts of your app and talk to your customers without interrupting their experience. - [Localize your in-app messages](https://docs.customer.io/messaging/channels/in-app/localize-in-app-message.md): If you have a localized app, you may want to deliver in-app messages in the language your audience uses. There are various language settings that can help ensure that your audience gets messages in their preferred language. - [In-app metrics](https://docs.customer.io/messaging/channels/in-app/metrics.md): When you send an in-app message, you can see its status per profile, and metrics to determine how it - [Multi-step messages](https://docs.customer.io/messaging/channels/in-app/multi-step.md): Multi-step messages let you send a single in-app message that contains sub-messages or steps, if you will. With multi-step messages, you can respond to user inputs or feedback without having to set up multiple messages or complicated automation logic. - [Support in-app messages across multiple apps](https://docs.customer.io/messaging/channels/in-app/multiple-apps.md): You can support more than one mobile app in your workspace, and you can send in-app messages targeting each app by selecting the app and platforms that show each in-app message. - [Promote an event](https://docs.customer.io/messaging/channels/in-app/recipes/event-promotion.md): Add a banner or modal message to your website that highlights upcoming events, like webinars, to increase registrations and engagement wih your product. - [Notify customers of their achievements](https://docs.customer.io/messaging/channels/in-app/recipes/web-achievements.md): Add a banner or modal message on your website that highlights customers - [New feature announcement and adoption](https://docs.customer.io/messaging/channels/in-app/recipes/web-adoption.md): Add a banner or modal message on your website to highlight a new feature! With in-app messages, you can announce features to drive adoption, increase subscriptions, and more. - [Send an NPS survey to your website visitors](https://docs.customer.io/messaging/channels/in-app/recipes/web-nps-survey.md): Net promoter score surveys (NPS) help you measure how likely people are to recommend your product (or a part of your product) to others. With in-app messages, you can send a quick survey to your website visitors to gauge their satisfaction. - [Announce a promotion](https://docs.customer.io/messaging/channels/in-app/recipes/web-promotion.md): During certain times of the year, like Black Friday or Cyber Monday, you might want to display a banner or modal message on your website that highlights a promotion! With in-app messages, you can announce your promotion and drive sales, increase subscriptions, and so on. - [Send in-app messages](https://docs.customer.io/messaging/channels/in-app/send-in-app-message.md): Send an in-app message as a part of an automation or broadcast workflow and put your message in front of people who open your app or visit your website. - [Test and debug in-app messages](https://docs.customer.io/messaging/channels/in-app/test-in-app.md): Preview, send test messages, and debug in-app messages on your website before you send them to a live audience. These features help you validate your integration and make sure your messages look and behave the way you want them to. - [Set up web in-app messaging](https://docs.customer.io/messaging/channels/in-app/web.md): While we call some messages *in-app* messages, they - [Line: get started](https://docs.customer.io/messaging/channels/line/get-started.md): Get started using LINE to send messages to your customers as part of your triggered automations! - [LINE metrics and reporting](https://docs.customer.io/messaging/channels/line/metrics.md): Customer.io tracks metrics for your LINE messages so you can understand how your audience interacts with them. You can view LINE metrics in automation dashboards and the delivery log. - [Line: send messages](https://docs.customer.io/messaging/channels/line/send-messages.md): After you - [Checking link status](https://docs.customer.io/messaging/channels/links/checking.md): If you - [HTTPS link tracking](https://docs.customer.io/messaging/channels/links/track-https-links.md): By default, [tracked links that use your custom subdomain](/messaging/channels/email/deliverability/link-tracking-custom-domain/) as specified with the CNAME record are basic HTTP links. You can enable HTTPS link tracking by configuring your link tracking and we - [Link tracking](https://docs.customer.io/messaging/channels/links/tracking.md): When link tracking is enabled, we track clicks to help you understand how people are engaging with your messages in automations, broadcasts, and transactional use cases. - [Track universal links and app links in email](https://docs.customer.io/messaging/channels/links/universal-links.md): Deep links take users to content inside your app. Apple - [Adding URL parameters to links](https://docs.customer.io/messaging/channels/links/url-parameters.md): Adding URL parameters to your links enables you to better track and analyze customers - [Monitor live notifications](https://docs.customer.io/messaging/channels/live-notifications/monitor.md): Track every live notification sent to a person—including the full timeline of starts, updates, and ends—on their profile. - [Live notifications overview](https://docs.customer.io/messaging/channels/live-notifications/overview.md): A live notification shows real-time information from your app in places your customer often checks: the iOS Lock Screen or the Android notification panel. Live notifications are things like a food delivery tracker that moves from "Order received" to "Out for delivery," live updates for a sporting match, or a flight tracker that counts down to arrival. - [Messages in multiple languages](https://docs.customer.io/messaging/channels/localization-i18n.md): Customer.io supports multiple character sets out of the box. If your app/site has multiple languages, there are a few ways you can localize your messages. In every case, you - [Set up your localization attribute](https://docs.customer.io/messaging/channels/localization/attribute.md): Before you can set up multi-language messages, you need to store your audience - [Translate your messages](https://docs.customer.io/messaging/channels/localization/getting-started.md): Start here to learn how to translate messages and send them to the right recipients. Across any workflow, you - [Track metrics for translations](https://docs.customer.io/messaging/channels/localization/metrics.md): You can track message performance for each translation from your metric dashboards. - [Message activity](https://docs.customer.io/messaging/channels/message-activity.md): The Message activity page shows you a list of delivered or drafted messages across all journeys and provides a way to export data within a specified timeline. - [Message channels](https://docs.customer.io/messaging/channels/message-channels.md): This is a disambiguation page. Read on to learn more about the message channels we support, or move on to the channel you really want! - [Find messages using the Message Library](https://docs.customer.io/messaging/channels/message-library.md): The Message Library helps you search for messages across your automations, broadcasts, and one-time sends. This makes it easier to find specific messages, or automations containing a specific message. - [Message statuses](https://docs.customer.io/messaging/channels/message-statuses.md): Each individual message that you send to a person travels through Customer.io, to a delivery provider, and ultimately to a person. Customer.io logs the status of each individual delivery and journey, so you know whether or not a person has received a message, opened it, and responded to it. - [Best practices for push notifications](https://docs.customer.io/messaging/channels/push/best-practices.md): Here are some things you can do to make sure that you can effectively communicate with your audience using push notifications. - [Custom push payloads](https://docs.customer.io/messaging/channels/push/custom-payloads.md): You can send highly customized push notifications using a Custom Payload. If you - [Integrate your app](https://docs.customer.io/messaging/channels/push/developer-guide.md): Before you can send push notifications, you need to set up your workspace to send push notifications through your push provider and configure your app to receive push notifications. You can do this with or without our SDKs providing flexibility in how you send and receive push notifications. - [Registering device tokens](https://docs.customer.io/messaging/channels/push/device-tokens.md): Device (push) tokens are how we identify devices in your audience. This page provides information about how to register tokens, associate them with people in your workspace, and what to do when they expire or are otherwise no longer useful. - [Push notifications: frequently asked questions](https://docs.customer.io/messaging/channels/push/faq.md): This page contains answers to frequent questions about push notifications both in general and in Customer.io. - [Push notifications: getting started](https://docs.customer.io/messaging/channels/push/getting-started.md): This page can help you understand what you need to do before you send your first push notification. You may need to integrate your app with Customer.io, add your push certificates to your workspace, or register devices. - [Migrate from another provider](https://docs.customer.io/messaging/channels/push/migration.md): When you move to Customer.io from another push provider, you - [Push metrics and message statuses](https://docs.customer.io/messaging/channels/push/notifications-tracking.md): A push notification can have several different statuses as it goes through the process of being sent. When we attempt to deliver these, you may have told us to try reaching them on one or multiple devices. - [Test push notifications](https://docs.customer.io/messaging/channels/push/qa-testing.md): When it comes to testing your push configuration and messages for quality assurance (QA) purposes, we recommend that you keep separate development/test and production workspaces—*especially* if your workspaces don - [Send push notifications](https://docs.customer.io/messaging/channels/push/send-push.md): You can send basic push notifications—with a title and a body—as a part of an automation or broadcast. - [Troubleshooting mobile issues](https://docs.customer.io/messaging/channels/push/troubleshooting-mobile.md): Having trouble with your mobile integration, push notifications, or in-app messages? Here are a few things that can help you fix the problem or gather information if you need to get in touch with Customer.io support. - [Slack: get started](https://docs.customer.io/messaging/channels/slack/get-started.md): Customer.io - [Smart character encoding](https://docs.customer.io/messaging/channels/sms/character-encoding.md): SMS messages typically support up to 160 characters. But some characters change the encoding scheme, and would otherwise drop your message to 70 characters. To prevent this sort of issue, we automatically replace certain characters with their GSM 7-bit Unicode equivalents to maximize the number of characters in your message. - [SMS: frequently asked questions](https://docs.customer.io/messaging/channels/sms/faq.md): Answers to common questions about SMS messages. - [SMS/MMS: get started](https://docs.customer.io/messaging/channels/sms/get-started.md): Send SMS through Customer.io with the provider of your choice. Connect the account you already have with Twilio, Sinch, Infobip, or Vonage—or, if you - [Respond to inbound keywords](https://docs.customer.io/messaging/channels/sms/inbound/campaigns.md): When people send you SMS messages, you can use automations to handle the incoming messages and trigger responses. - [Getting started with inbound messages](https://docs.customer.io/messaging/channels/sms/inbound/get-started.md): People can reply to your SMS messages using keywords. You can use replies to track engagement or trigger automations. - [Inbound statuses and activities](https://docs.customer.io/messaging/channels/sms/inbound/metrics.md): We show activities for inbound messages to help you understand who replied to your messages. If you expect people to respond to a message as a call to action, then you can use these activities to track and troubleshoot responses. - [Opt-out keyword handling](https://docs.customer.io/messaging/channels/sms/keyword-opt-out.md): People can opt out of SMS messages by sending an opt-out keyword to your sender number—like `STOP` or `UNSUBSCRIBE`. In Customer.io, we respect your audience - [SMS: link shortening](https://docs.customer.io/messaging/channels/sms/link-shortening.md): When you enable SMS and turn on the setting *Shorten links*, we shorten links in your SMS and WhatsApp message bodies. This page explains how link shortening works. - [SMS: metrics](https://docs.customer.io/messaging/channels/sms/metrics.md): We record metrics for every SMS/MMS message you send, so you can measure the success of your automations and segment your audience based on the messages you - [Brand and campaign registration](https://docs.customer.io/messaging/channels/sms/registration/brand-campaign.md): Before you can register for a phone number, you - [Getting a phone number](https://docs.customer.io/messaging/channels/sms/registration/get-a-phone-number.md): If you - [HIPAA compliance and privacy regulations](https://docs.customer.io/messaging/channels/sms/registration/hipaa-standards.md): If you send messages relating to healthcare in the United States, you may need to be HIPAA compliant. This page contains best practices to help you with HIPAA compliance and protect your audience - [Opt-in and out flow](https://docs.customer.io/messaging/channels/sms/registration/opt-in-and-out-flow.md): You need to provide your users with clear instructions to opt into and out of your SMS messages. You must have designs for your opt-in and out flow before you request a sender number. Twilio and carriers evaluate your opt-in and out flow as part of your registration process. - [What kind of phone number do I need?](https://docs.customer.io/messaging/channels/sms/registration/phone-number-types.md): You can send messages using three different kinds of phone numbers. In general, all three have similar regulatory requirements, but they have different daily sending limits. You - [Build a compliant SMS opt-in form](https://docs.customer.io/messaging/channels/sms/registration/sms-opt-in-form.md): U.S. carriers require specific elements on your SMS opt-in form before they approve your sender registration. This page covers each requirement so you can build a compliant consent surface and avoid registration delays. - [Telehealth and weight management compliance](https://docs.customer.io/messaging/channels/sms/registration/telehealth-weight-management.md): SMS programs in the telehealth, healthcare, and weight management sectors receive heightened review from wireless carriers and messaging providers. This page covers the rules we recommend you follow to protect your deliverability and keep your program in good standing. - [Update your privacy policy for SMS](https://docs.customer.io/messaging/channels/sms/registration/your-privacy-policy.md): As part of the registration and approval process for your SMS messaging, carriers require that your Privacy Policy and Terms of Service include specific language that outlines how you collect, use, and store customer information and how you manage consent for SMS messaging. - [SMS/MMS: send messages](https://docs.customer.io/messaging/channels/sms/send-messages.md): Learn how to send SMS and MMS messages using Customer.io. - [SMS sender numbers](https://docs.customer.io/messaging/channels/sms/sender-phone-numbers.md): When you connect an SMS provider, we sync your sender identities—phone numbers, short codes, and sender IDs. This page explains how to manage your senders so you can select different senders for different messages. - [Validate mobile phone numbers](https://docs.customer.io/messaging/channels/sms/validate-mobile-phone-numbers.md): If you send SMS or WhatsApp messages, you may want to make sure that you - [Brand your subscription pages](https://docs.customer.io/messaging/channels/subscriptions/center-branding.md): If you have no subscription topics in your workspace, you can brand the **global unsusbcribe page** that your customers will see when they click your unsubscribe links. If you have at least one subscription topic (even if the subscription center is disabled), you - [Multi-language support for the subscription center](https://docs.customer.io/messaging/channels/subscriptions/center-translation.md): You can translate, aka localize, your subscription center in *Workspace Settings*. - [The subscription center](https://docs.customer.io/messaging/channels/subscriptions/center.md): A subscription center helps you differentiate between the different types of messages you send and lets your audience decide what kinds of automations and messages they want to receive. - [Manage subscription preferences](https://docs.customer.io/messaging/channels/subscriptions/manage-subscription-preferences.md): Learn how to set, find, and filter subscription preferences for your audience—including adjusting preferences in the UI, migrating from another service, and using the API. - [Subscription preference metrics](https://docs.customer.io/messaging/channels/subscriptions/metrics.md): Track unsubscribes from topics, monitor subscription trends over time with data-driven segments, and send subscription events to external systems. - [Migrate subscription preferences](https://docs.customer.io/messaging/channels/subscriptions/migrate-subscription-prefs.md): You may have managed your audience - [Overview of subscription options](https://docs.customer.io/messaging/channels/subscriptions/overview.md): We provide native unsubscribe functionality for email, SMS, WhatsApp, and push notifications. In this article, you - [Set preferences outside of the subscription center](https://docs.customer.io/messaging/channels/subscriptions/set-preferences-outside-center.md): Let your audience manage their subscription preferences outside of your Customer.io messages—in your app, during sign-up, or anywhere else you want to provide a link. - [Subscription FAQs](https://docs.customer.io/messaging/channels/subscriptions/unsubscribe-faqs.md): This article contains a series of frequently asked questions that apply to our subscription center and global unsubscribe functionality. - [Global unsubscribes](https://docs.customer.io/messaging/channels/subscriptions/unsubscribes.md): **A person - [Create WhatsApp content templates](https://docs.customer.io/messaging/channels/whatsapp/content-templates.md): WhatsApp messages are based on templates approved by Meta. So, before you can send WhatsApp messages, you - [WhatsApp: frequently asked questions](https://docs.customer.io/messaging/channels/whatsapp/faq-whatsapp.md): Answers to common questions about WhatsApp messages in Customer.io. - [WhatsApp: get started](https://docs.customer.io/messaging/channels/whatsapp/get-started.md): You can set up WhatsApp using your Facebook Business Account or through Twilio if you use Twilio to send SMS messages. We - [Respond to inbound messages](https://docs.customer.io/messaging/channels/whatsapp/inbound/campaigns.md): When people send you WhatsApp messages, you can use automations to handle the incoming messages and trigger responses. - [Support inbound WhatsApp messages](https://docs.customer.io/messaging/channels/whatsapp/inbound/get-started.md): People can reply to your WhatsApp messages. You can use replies to track engagement, respond to your audience, and trigger automations. - [Inbound statuses and activities](https://docs.customer.io/messaging/channels/whatsapp/inbound/statuses.md): We show activities for inbound messages to help you understand who replied to your messages. If you expect people to respond to a message as a call to action, you can use these activities to track and troubleshoot responses. - [WhatsApp metrics and reporting](https://docs.customer.io/messaging/channels/whatsapp/metrics.md): Customer.io tracks metrics for your WhatsApp messages so you can understand how your audience interacts with them. You can view WhatsApp metrics in automation dashboards and the delivery log. - [Send a WhatsApp message](https://docs.customer.io/messaging/channels/whatsapp/send-whatsapp.md): After you - [How to collaborate](https://docs.customer.io/messaging/design-studio/collaboration/collaborate.md): Collaborate with teammates to review and fine-tune your messages made in Design Studio. - [Submit & manage feedback](https://docs.customer.io/messaging/design-studio/collaboration/feedback.md): In Design Studio, get feedback on your messages from your team. - [Send a test message](https://docs.customer.io/messaging/design-studio/collaboration/send-test.md): To make sure your message looks right before sending it to your customers, send a test message to your inbox. - [Manage version history](https://docs.customer.io/messaging/design-studio/collaboration/version-history.md): In Design Studio, you can save, manage, and restore previous versions of your messages. - [Validate your email](https://docs.customer.io/messaging/design-studio/emails/code-editor/developer-tools.md): In Design Studio, you can use a number of tools to validate your email in the code editor preview. These tools help you catch code issues, debug layout and accessibility, validate links and images, and check your spam score. - [Use Emmet syntax](https://docs.customer.io/messaging/design-studio/emails/code-editor/emmet.md): The code editor in Design Studio supports [Emmet](https://emmet.io/), a shorthand syntax that expands into full HTML. It’s a fast way to generate repetitive structures like tables, links, or nested divs. - [Support Microsoft Office with MSO syntax](https://docs.customer.io/messaging/design-studio/emails/code-editor/mso.md): The code editor in Design Studio includes tools to help you write and manage Microsoft Office (MSO) syntax so your messages render more consistently in Outlook. - [Get started with the code editor](https://docs.customer.io/messaging/design-studio/emails/code-editor/overview.md): In Design Studio code editor, you can create a message from scratch or edit a message made using the visual editor. Build emails using components, HTML, CSS, MJML, and AMP and validate your work with developer tools. - [Accessibility fixes](https://docs.customer.io/messaging/design-studio/emails/code-editor/transformers/accessibility-fixes.md): In the code editor of Design Studio, use the Accessibility fixes transformer to add or remove common tags and attributes that cause accessibility issues. - [CSS cleanup](https://docs.customer.io/messaging/design-studio/emails/code-editor/transformers/css-cleanup.md): In the code editor of Design Studio, use the CSS cleanup transformer to remove unused CSS and optimize your CSS selectors. - [CSS inlining](https://docs.customer.io/messaging/design-studio/emails/code-editor/transformers/css-inlining.md): In the code editor of Design Studio, use the CSS inlining transformer (aka [CSS pre-processing](/messaging/channels/email/layouts/css-pre-processing/)) to convert embedded CSS into inline styles. This can help improve page loading times and tells browsers to treat your styles as the most important. - [CSS variables](https://docs.customer.io/messaging/design-studio/emails/code-editor/transformers/css-variables.md): In the code editor of Design Studio, use the CSS variables transformer to convert CSS variables to a format that most email clients support. - [Formatting](https://docs.customer.io/messaging/design-studio/emails/code-editor/transformers/formatting.md): In the code editor of Design Studio, use the Formatting transformer to apply your choice of formatting to the source code. - [MJML framework](https://docs.customer.io/messaging/design-studio/emails/code-editor/transformers/mjml.md): [MJML](https://mjml.io/) is a markup language that makes it easier to code responsive emails. In Design Studio, our code editor supports MJML so you can import existing emails with this syntax. This language is not fully supported by our visual editor though. We recommend building your email from [components](/messaging/design-studio/reusable/components-overview/) when possible! - [Set URL parameters for a single message](https://docs.customer.io/messaging/design-studio/emails/code-editor/transformers/url-parameters.md): Add URL parameters through the code editor in Design Studio to help you track and analyze how your customers interact with your messages. - [Connect an email to an automation](https://docs.customer.io/messaging/design-studio/emails/connected/add-email-to-automation.md): While you can [create a Design Studio email as a part of your automation, broadcast, or transactional message](/messaging/design-studio/file-manager/#create-from-an-automation), you can also [create the email first](/messaging/design-studio/emails/visual-editor/overview/) then connect it to an automation later, as described in this article. - [Disconnect an email from an automation](https://docs.customer.io/messaging/design-studio/emails/connected/disconnect-from-automation.md): You can disconnect an email from an automation, API-triggered broadcast, one-time send, or transactional message made in Design Studio so you can use it elsewhere. - [Edit connected messages & publish changes](https://docs.customer.io/messaging/design-studio/emails/connected/publish-changes.md): If you change a connected message, make sure you publish changes in Design Studio so your connected automation is up-to-date. - [Save time with keyboard shortcuts](https://docs.customer.io/messaging/design-studio/emails/keyboard-shortcuts.md): 2 - [Preview email in Design Studio](https://docs.customer.io/messaging/design-studio/emails/preview-email-in-design-studio.md): Preview your emails to make sure your messaging and styling work across different settings in your audience - [Review your email for quality and accessibility](https://docs.customer.io/messaging/design-studio/emails/qa-in-design-studio.md): Use the Review panel to quickly pinpoint errors that could prevent your email from sending, and get tips for improving the quality of your message. - [Assign global styles to components](https://docs.customer.io/messaging/design-studio/emails/styles/assign-styles.md): In Styles in Design Studio, you set global style variables and then assign them to one or more variants of a component. For instance, you set your colors as variables then assign them to buttons, sections, and more so your messages automatically use your branding. - [Dark mode](https://docs.customer.io/messaging/design-studio/emails/styles/dark-mode.md): You can customize how your message appears in dark mode when a user - [Responsive styles](https://docs.customer.io/messaging/design-studio/emails/styles/responsive-styles.md): Use the Properties menu to show or hide elements as well as customize responsive styles like font size and text alignment. Set default responsive styles in your global styles. You can also code your own responsive styles if we don - [Set global styles](https://docs.customer.io/messaging/design-studio/emails/styles/set-styles.md): Global styles in Design Studio let you define reusable design elements—like colors and fonts—that apply across emails made in Design Studio and in-app messages. - [Rules: display content based on conditions](https://docs.customer.io/messaging/design-studio/emails/visual-editor/ds-conditional-display.md): If you want content to show based on a [recipient - [Add & preview liquid in the visual editor](https://docs.customer.io/messaging/design-studio/emails/visual-editor/liquid-visual-editor.md): In Design Studio, you can personalize your emails using liquid, a templating language that lets you pull in data about your recipients, events, objects, and more. This article shows you have to add liquid using the Personalization panel in the visual editor. - [Get started with the visual editor](https://docs.customer.io/messaging/design-studio/emails/visual-editor/overview.md): In Design Studio, you can create an email with visual blocks, no coding necessary. - [Style your messages using the Properties menu](https://docs.customer.io/messaging/design-studio/emails/visual-editor/properties-menu.md): In Design Studio, the Properties menu lets you style each component of your email. You can adjust layout, set backgrounds, apply text styles, and control how components display on different devices. - [Manage your files](https://docs.customer.io/messaging/design-studio/file-manager.md): In Design Studio, manage your emails, templates, components, and styles in one place from your dashboard. - [Convert emails to Design Studio](https://docs.customer.io/messaging/design-studio/migrate-dnd-to-ds.md): Learn how to migrate emails to Design Studio. You can automatically migrate emails made with the drag-and-drop editor. [For other editors, follow our best practices below.](#migrate-emails-not-made-with-the-drag-and-drop-editor) - [Welcome to Design Studio!](https://docs.customer.io/messaging/design-studio/overview.md): Design Studio is a flexible editor that helps you create beautiful, responsive messages faster than ever before. Use it to set branding across emails made in Design Studio, in-app messages, SMS messages, and WhatsApp messages. - [Understand standard vs custom components](https://docs.customer.io/messaging/design-studio/reusable/components-overview.md): Components help you reuse content and structure across your Design Studio messages so you can build faster. - [Create a component from scratch](https://docs.customer.io/messaging/design-studio/reusable/components/code-custom-component.md): In Design Studio, organize your code into reusable blocks with custom components. - [How to create & edit a component](https://docs.customer.io/messaging/design-studio/reusable/components/create-custom-component.md): In Design Studio, you can create custom blocks, like headers and footers, to reuse across emails to save you time, ensure brand consistency, and reduce errors. - [Delete a component](https://docs.customer.io/messaging/design-studio/reusable/components/delete-component.md): Understand how deleting components impacts your emails. - [Migrate components from Parcel](https://docs.customer.io/messaging/design-studio/reusable/components/migrate-comp-from-parcel.md): If you created components in the email editor Parcel, you can migrate them to Design Studio. You - [Style custom components](https://docs.customer.io/messaging/design-studio/reusable/components/properties.md): Learn how to define and validate properties for your components in Design Studio. - [Slots: create modifiable, placeholder content](https://docs.customer.io/messaging/design-studio/reusable/components/slots.md): Add slots to determine what content you can modify in the visual editor of Design Studio. You can create text-based slots or drop-zones for components. - [Understand additional syntax for creating custom components](https://docs.customer.io/messaging/design-studio/reusable/components/syntax/custom-comp-syntax.md): In Design Studio, there are a number of top-level elements available in a custom component file as well as other syntax. - [Directives: control your component's behavior](https://docs.customer.io/messaging/design-studio/reusable/components/syntax/directives.md): Directives are special attributes that direct an element - [Loops: iterate over data in your components](https://docs.customer.io/messaging/design-studio/reusable/components/syntax/loops.md): If you want to list information from an array, use loops. You can iterate over custom data or data available in your workspace. This article covers custom data. - [Create a stylesheet](https://docs.customer.io/messaging/design-studio/reusable/components/syntax/styling.md): In Design Studio, define CSS to style your components. - [Add components to your message](https://docs.customer.io/messaging/design-studio/reusable/insert-components.md): Add components to the visual editor of Design Studio to start building your message. After you - [Understand and style standard components](https://docs.customer.io/messaging/design-studio/reusable/standard-components.md): Standard components come with a predefined set of properties you can modify to customize and brand your Design Studio messages. - [WhatsApp: create & approve templates in Design Studio](https://docs.customer.io/messaging/design-studio/whatsapp-design-studio.md): You can create and submit WhatsApp templates for approval in Customer.io if you send messages through your Facebook Business Account. [If you send through Twilio, you have to manage your templates on their site.](/messaging/channels/whatsapp/content-templates/#create-a-content-template-in-twilio) - [Introduction to messaging](https://docs.customer.io/messaging/journeys-overview.md): Welcome to Customer.io! This page and section are designed to help you get acquainted to our platform. This page introduces the core concepts in Customer.io, and the following pages dive deeper into each concept. - [Composer errors](https://docs.customer.io/messaging/liquid/composer-errors.md): When you compose messages and use Liquid, you may sometimes see the little **Review Errors** button turn red and animate. - [Personalize actions with JavaScript](https://docs.customer.io/messaging/liquid/js-in-actions.md): In our *Create Event* and *Create or Update Profile* actions, you can use JavaScript or Liquid to access and manipulate variables. This page shows JavaScript methods corresponding to common Liquid use cases, helping you take advantage of JavaScript in your workflow actions. - [Liquid recipes](https://docs.customer.io/messaging/liquid/recipes.md): Learn how to add liquid syntax for your use case. - [Reusing content with snippets](https://docs.customer.io/messaging/liquid/snippets.md): *Snippets* are common chunks of content that you can share across your emails, text messages, and more. - [Liquid syntax list](https://docs.customer.io/messaging/liquid/tag-list.md): This page contains a list of the liquid tags, keys, and filters available to you in Customer.io. - [Liquid upgrade](https://docs.customer.io/messaging/liquid/upgrade.md): We are upgrading how we render liquid in your messages to better support you. The version we use to render your liquid depends on when you created your account with us. - [Personalize messages with liquid](https://docs.customer.io/messaging/liquid/using-liquid.md): Liquid is a templating language that lets you personalize messages based on your audience - [Metrics overview](https://docs.customer.io/messaging/metrics/analytics.md): Metrics throughout Customer.io show you how well your messaging strategies are working or if there - [Automation and broadcast metrics](https://docs.customer.io/messaging/metrics/automation-metrics.md): When you start an automation or trigger a broadcast, it begins generating metrics on the overview page. - [Getting conclusive results from A/B tests](https://docs.customer.io/messaging/metrics/conclusive-ab-results.md): Testing messages sent to your user base is a fantastic way to learn about your consumers and continue to improve your messaging strategies. But how can you be sure that your tests are actually telling you what you think they’re telling you? When conducting tests, you should aim to maximize the level of confidence you have in the results of the test. This is where statistical significance comes in. - [Home dashboard](https://docs.customer.io/messaging/metrics/dashboard.md): Use the Home dashboard to start where you last left off, explore message performance, or determine your next step with suggested action items. - [Email deliverability metrics](https://docs.customer.io/messaging/metrics/deliverability-metrics.md): The **Deliverability** tab in the **Reports** section of your workspace shows key email metrics by recipient provider. These metrics represent all outbound emails from your workspace over a timeframe you select. This data can help you identify providers you - [Email client metrics](https://docs.customer.io/messaging/metrics/email-clients.md): The **Email clients** tab on **Analysis** page shows which email clients your audience uses to read your emails. It can help you decide which clients to design and test for, and to understand how privacy features like Apple - [Goals](https://docs.customer.io/messaging/metrics/goals.md): Goals are measurable business outcomes that help you strategize around your messaging and data. Unlike automation-specific conversion goals, *Goals* give you a single view of performance *across* your automations and broadcasts. - [Workspace performance dashboard](https://docs.customer.io/messaging/metrics/health.md): Your Workspace Performance dashboard helps you monitor workspace health, data processing, and messaging performance. It - [Send failed or attempted messages](https://docs.customer.io/messaging/metrics/message-failed.md): You can retry sending messages with a status of `Attempted` or `Failed`. - [Reports](https://docs.customer.io/messaging/metrics/run-reports.md): On the **Reports** page, you can define the specific report criteria you want to see and compare your automations, one-time sends, and broadcasts. - [Understanding your A/B test results](https://docs.customer.io/messaging/metrics/understanding-ab-results.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Collections](https://docs.customer.io/messaging/objects-data/collections.md): Collections provide a way to store data in your workspace that you can use in automations with Liquid. - [Getting started with objects and collections](https://docs.customer.io/messaging/objects-data/getting-started-objects-collections.md): When you identify profiles or send events, you associate data with a profile. But what if you want to manage data for a company, a series of educational courses, or other entities? That - [Objects](https://docs.customer.io/messaging/objects-data/objects/create.md): Learn how to create, edit, or delete objects. - [Export objects or relationships via CSV](https://docs.customer.io/messaging/objects-data/objects/export-many.md): Export data about objects and relationships to CSV files. - [Import objects or relationships via CSV](https://docs.customer.io/messaging/objects-data/objects/import-objects.md): Add or update objects and relationships via CSV to add or update data in Customer.io. This is a good option if you - [Use objects in liquid](https://docs.customer.io/messaging/objects-data/objects/in-liquid.md): Learn how to reference objects and relationships using liquid. - [Objects and relationships in automations](https://docs.customer.io/messaging/objects-data/objects/relationships-in-automations.md): You can trigger automations based on changes to objects and relationships. You can target trigger data in messages and specify who should enter an automation based on the relationship they have to objects. - [Relationships](https://docs.customer.io/messaging/objects-data/objects/relationships.md): 25 - [Objects](https://docs.customer.io/messaging/objects-data/objects/start.md): Not to be confused with JSON objects, an *Object* is a way to group people, like an *account* that people belong to, online courses that people enroll in, or recreational leagues that people can join. - [Object types](https://docs.customer.io/messaging/objects-data/objects/types.md): 10 - [Objects: video tutorials](https://docs.customer.io/messaging/objects-data/objects/video-tutorials.md): 3 - [Awareness: announce events](https://docs.customer.io/messaging/objects-data/use-cases/awareness-announce-events.md): In this object recipe, we - [Conversion: activate profiles on your event waitlist](https://docs.customer.io/messaging/objects-data/use-cases/conversion-activate-waitlist.md): In this object recipe, we - [Adoption: drive feature usage](https://docs.customer.io/messaging/objects-data/use-cases/feature-adoption.md): In this object recipe, we - [Upsell: monetize power users](https://docs.customer.io/messaging/objects-data/use-cases/upsell-users.md): In this object recipe, we - [Anonymous activity](https://docs.customer.io/messaging/profiles/anonymous.md): Track page views, screen views, and custom events from people you haven - [Events](https://docs.customer.io/messaging/profiles/events.md): Events are actions profiles perform in your app, on your website, etc—things like button clicks, scrolling to the bottom of a page, or purchases. When you send us events, you can start automations and segment your users based on the things they do (or don - [How do I know what data I have available?](https://docs.customer.io/messaging/profiles/find/data-availability.md): If you - [Search for profiles](https://docs.customer.io/messaging/profiles/find/filter-search.md): To locate specific profiles, you can filter for them from the Profiles page. You can export the results to CSV. - [Filter profile activity](https://docs.customer.io/messaging/profiles/find/filtering-logs.md): Your workspace **Profile activity** tracks changes to your profiles and objects. You might use this to identify who recently performed a specific event or viewed a specific page and troubleshoot issues. - [Using your Data Index](https://docs.customer.io/messaging/profiles/find/using-data-index.md): The **Data Index** provides information about the events and attributes stored on profiles and objects in your workspace. It can help you understand what data you - [Set up geofences](https://docs.customer.io/messaging/profiles/geofences.md): When someone enters or exists a physical location with your app, geofences lets you trigger a journey, update a segment, or send a message. - [Geolocation and time zone data](https://docs.customer.io/messaging/profiles/geolocation.md): Customer.io can gather geolocation and time zone data from your audience, helping you coordinate messages at times that are appropriate for them. - [Storing and using JSON](https://docs.customer.io/messaging/profiles/getting-started-with-json.md): You can pass data into Customer.io, and store it, in complex JSON. If you - [Manage profile attributes](https://docs.customer.io/messaging/profiles/manage/attributes.md): Profile attributes represent the things you know about your audience—their name, preferences, email address, etc. You can use them to personalize messages, track profiles with similar characteristics, trigger automations, and more! - [Delete profiles and suppress profile IDs](https://docs.customer.io/messaging/profiles/manage/deleting-users.md): You can delete profiles from Customer.io from our UI or API. No matter which method you choose, when you delete a profile, you - [Export data for multiple profiles](https://docs.customer.io/messaging/profiles/manage/exporting-users.md): You can export data for a group of users to a CSV. You might do this to test your integration when you - [How to identify profiles](https://docs.customer.io/messaging/profiles/manage/identifying-profiles.md): In Customer.io, profiles are the people you know—your customers, users, subscribers, etc. To add or update profiles in your workspace, you must identify them. Depending on your workspace settings, you can identify unique profiles by ID, email address, or phone number. - [What's the Last Visited field, and how do I use it?](https://docs.customer.io/messaging/profiles/manage/last-visited.md): Everybody in your workspace has a *Last Visited* attribute. This value is updated based on page view activity from our JavaScript snippet or Event calls to the API, helping determine the last time that someone was active on your website. - [Manage devices](https://docs.customer.io/messaging/profiles/manage/managing-customer-mobile-devices.md): If you want to send push notifications, you can register your users devices with us. [Our SDKs](/integrations/sdk/) automatically associate device tokens with profiles when you identify a profile, but you can also use [our API](/integrations/api/track/tag/track-customers/add_device/) to add devices. - [Add or update profiles](https://docs.customer.io/messaging/profiles/manage/manually-adding-or-updating-profiles.md): Generally, you - [Resolve duplicate profiles](https://docs.customer.io/messaging/profiles/manage/merge-profiles.md): If you inadvertently create duplicate instances of a profile, you can merge them and consolidate information to accurately represent a single "profile" in your workspace. - [Profiles](https://docs.customer.io/messaging/profiles/manage/overview.md): In Customer.io, you - [Export a profile's data](https://docs.customer.io/messaging/profiles/manage/single-user-export.md): You can export all of your Customer.io data for an individual profile. - [How do I create multiple subscription types?](https://docs.customer.io/messaging/profiles/multiple-subscription-types.md): Before the subscription center existed, we recommended the following options to those who wanted to track preferences at a more granular level than our global unsubscribe and to segment profiles based on these preferences. We recommend using our [subscription center](/messaging/channels/subscriptions/center/) moving forward. - [Shortcuts to external services](https://docs.customer.io/messaging/profiles/shortcuts.md): You can add **shortcuts** from profiles in Customer.io to external services, making it easy to go from a profile in Customer.io to that profile - [Import profiles or events via CSV](https://docs.customer.io/messaging/profiles/uploading-profiles.md): You can import a CSV to add new profiles, update existing profiles, or both. - [Ad audiences](https://docs.customer.io/messaging/segmentation/ad-audiences-sync.md): In ad networks like Google, Facebook, and Instagram Ads, you can target your ads by importing a list of known users. Customer.io lets you do this programmatically by sending segments into ad networks as audiences. This eliminates the manual process of importing custom lists and ensures parity between the profiles you communicate with in Customer.io and your Ad Network. - [Setting up segments for specific purposes](https://docs.customer.io/messaging/segmentation/creating-segments.md): Segments are groups of profiles matching the same criteria. Here, we - [Data-driven segments](https://docs.customer.io/messaging/segmentation/data-driven-segments.md): Data-driven segments are groups of profiles that you automatically populate when they meet certain conditions. Profiles enter the segment when they match the conditions and leave the segment when they stop matching the conditions. These kinds of segments help you group profiles according to real-time activities. - [Create segments based on mobile devices](https://docs.customer.io/messaging/segmentation/device-segments.md): To group profiles by mobile device information, you can create segments based on predefined device attributes like `platform`, `last used`, and `last status`, and custom attributes. - [Timestamp conditions FAQ](https://docs.customer.io/messaging/segmentation/faq-timestamps.md): Timestamps and timestamp-based rules can be tricky. Here, we - [Using JSON in segments](https://docs.customer.io/messaging/segmentation/json-in-segments.md): Attributes and event data can contain nested (JSON) values—arrays, objects, and arrays of objects. You can use these nested values to match profiles in segments, filters, and trigger criteria. If you - [Manual segments](https://docs.customer.io/messaging/segmentation/manual-segments.md): Manual segments let you group profiles according to business logic outside of Customer.io. As the name suggests, you - [Why don't profiles match 'within the past X days' conditions?](https://docs.customer.io/messaging/segmentation/past-x-days-help.md): This problem often comes up when you set up a segment to check that someone has *not* performed an action within the last X days. The reason this happens is because we can only check that criteria if they - [Segment builder: generate segments with AI](https://docs.customer.io/messaging/segmentation/segment-builder.md): Building segment conditions to target the right audience can be hard, so we - [How segments work](https://docs.customer.io/messaging/segmentation/segments.md): Segments are groups of profiles that you organize by shared characteristics or behaviors. You can add profiles to segments automatically when they achieve certain criteria, or you can create manual, static segments. - [Timestamp conditions](https://docs.customer.io/messaging/segmentation/timestamp-conditions.md): Segments include a variety of timestamp-based rules. This page describes those rules and helps you take advantage of them in segments. - [Timestamp rules for building segments](https://docs.customer.io/messaging/segmentation/timestamp-rules.md): Timestamp rules aren - [Automation goals & conversion criteria](https://docs.customer.io/messaging/send/automations/conversions.md): A **goal** is what you want your audience to accomplish during your automation, like purchase a product, sign up, or subscribe. When you set up a goal, you define **conversion criteria**, which are the rules that determine when we mark a message or profile as converted. - [Create an automation](https://docs.customer.io/messaging/send/automations/create-an-automation.md): Automations are automated workflows that send messages and perform other actions when profiles meet certain criteria. This page takes you step-by-step through creating an automation from scratch. - [Batch update](https://docs.customer.io/messaging/send/automations/data-workflows/batch-update-webhook-automations.md): A batch update lets you apply data to a group of up to 1,000 profiles matching your criteria. For each profile your batch update matches, you can update attributes or send events (to trigger a message automation, for example). - [Send an event from inside an automation](https://docs.customer.io/messaging/send/automations/data-workflows/data-automation-event-action.md): You can convert the incoming webhook for a webhook-triggered automation into an event associated with a profile—in any workspace within your account. This makes it easy to trigger automations or add profiles to segments based on things that happen outside of Customer.io without having to talk to a developer and write your own integration. - [Automation for syncing Mixpanel cohorts](https://docs.customer.io/messaging/send/automations/data-workflows/mixpanel-data-automation.md): Send cohort data from Mixpanel to Customer.io so you can add profiles, index events, and more. - [Follow up on NPS responses](https://docs.customer.io/messaging/send/automations/data-workflows/satismeter-data-automation.md): Set up a webhook-triggered automation to trigger follow-up responses for profiles that respond to your Satismeter NPS surveys! - [Sync customers from Stripe to Customer.io](https://docs.customer.io/messaging/send/automations/data-workflows/stripe-data-automation.md): Use Customer events from Stripe to trigger an automation syncing customers from Stripe with leads in Customer.io. Then you can send them messages in Customer.io! - [Webhook automations](https://docs.customer.io/messaging/send/automations/data-workflows/webhook-triggered-automations.md): Webhook-triggered automations let you use your JSON data in Customer.io, without having to reshape it using Zapier or another product first. Where our traditional workflows trigger based on a profile, a webhook trigger lets you start an automation when you receive JSON data (in any shape) from a specific source. - [Slack notification for support tickets](https://docs.customer.io/messaging/send/automations/data-workflows/zendesk-data-automation.md): Set up a webhook-triggered automation to notify your Support team about high priority tickets. - [Edit triggers, filters, or frequencies in live automations](https://docs.customer.io/messaging/send/automations/edit-live/changes.md): Learn how changes to triggers, filters, or frequency settings in live automations would impact your customers. - [Edit goals in live automations](https://docs.customer.io/messaging/send/automations/edit-live/goal-changes.md): Learn how changes to goals in live automations would impact your customers and metrics. - [Edit workflows in live automations](https://docs.customer.io/messaging/send/automations/edit-live/workflow-changes.md): Learn how changes to your automation workflows impact customers. - [Automation exit conditions](https://docs.customer.io/messaging/send/automations/exit-conditions.md): Exit conditions determine if or when a profile should exit your automation. The options available depend on the type of automation trigger you use—attribute or segment, event, etc. - [Grace periods](https://docs.customer.io/messaging/send/automations/grace-periods.md): A **grace period** is a period of time profiles may wait to enter your automation. Historically, it was also a period of time profiles might wait to *exit* your automation. This article explains how grace periods work now and how they used to work in case you - [Automation journeys](https://docs.customer.io/messaging/send/automations/journeys.md): When a profile enters an automation, they start a journey. You can follow each profile - [Automations page](https://docs.customer.io/messaging/send/automations/list.md): Automations are automated workflows you set up to send profiles messages and perform other actions when they meet your criteria. This article describes what you can do on the automations page. - [Automation concepts & settings](https://docs.customer.io/messaging/send/automations/overview.md): Automations are automated workflows you set up to send profiles messages and perform other actions when they meet your criteria. They - [Schedule an automation](https://docs.customer.io/messaging/send/automations/schedule-automations.md): You can schedule your automation to start or stop at a specific date and time. Scheduling gives your team the flexibility to plan and execute time-bound marketing initiatives with fewer manual steps. For instance, you might have a seasonal automation or limited-time offer that you want to make sure is only available during the relevant time period. - [Change the state of an automation](https://docs.customer.io/messaging/send/automations/statuses.md): Automation states determine whether your customers can enter your automations. - [When to use automation filters](https://docs.customer.io/messaging/send/automations/triggers-and-filters.md): This article covers the difference between triggers and filters for all types of automations. - [Automation triggers, filters, and frequencies](https://docs.customer.io/messaging/send/automations/triggers.md): Automation triggers determine who enters your automations and when. This page describes different kinds of triggers and why you might use them. - [Why aren't profiles entering my automation?](https://docs.customer.io/messaging/send/automations/troubleshoot/entrance.md): Start here to figure out why profiles are entering your automation earlier or later than you - [Why aren't profiles receiving my message?](https://docs.customer.io/messaging/send/automations/troubleshoot/messages-not-sending.md): Start here to figure out why profiles aren - [API-triggered broadcasts](https://docs.customer.io/messaging/send/broadcasts/api-triggered-broadcasts.md): An API-triggered broadcast is like an event-triggered automation, but the event—the `trigger`—represents a group of recipients. - [Format API-triggered broadcasts](https://docs.customer.io/messaging/send/broadcasts/api-triggered-data-format.md): When you trigger a broadcast, you can send data to personalize your message or override your audience. This page helps you understand the format of that data and how to set up complex recipient groups. - [Common API-triggered broadcast errors](https://docs.customer.io/messaging/send/broadcasts/api-triggered-errors.md): This page lists some common errors you might encounter when you trigger a broadcast, and troubleshooting options to help you overcome these errors. - [Edit live API-triggered broadcasts](https://docs.customer.io/messaging/send/broadcasts/apitb-changes.md): Learn how changes to a live API-triggered broadcast impact customers. - [One-time sends](https://docs.customer.io/messaging/send/broadcasts/one-time-sends.md): A one-time send is a single message that you send to a group of profiles at once. One-time sends make it easy to broadcast a single message to a wide audience at a predictable time without setting up an automation workflow. - [Introduction to broadcasts](https://docs.customer.io/messaging/send/broadcasts/overview.md): We offer two types of broadcasts: *One-time send* and *Messages triggered via API*. - [Personalize messages with trigger data](https://docs.customer.io/messaging/send/broadcasts/previewing-broadcast-data.md): You can use [Liquid](/messaging/liquid/tag-list/) to personalize your broadcasts. Any part of message or email layout can contain liquid, including the subject line and from address. You - [Message frequency limits](https://docs.customer.io/messaging/send/message-limits/overview.md): A message frequency limit is the maximum number of messages someone can receive in a specific time frame. You can set message limits for one or more message channels so your customers get the right amount of communications from you. Message frequency limits help you stay in compliance, control the cost of messaging, and maintain good rapport with your audience. - [Review & retry messages blocked by a message limit](https://docs.customer.io/messaging/send/message-limits/review-message-limits.md): You can review and retry messages blocked by a message limit by filtering for *Undeliverable* and *Attempted* messages. - [Set up message frequency limits](https://docs.customer.io/messaging/send/message-limits/set-up-message-limits.md): You can add one or more message limits for your workspace, and then decide which workflows and messages count towards your limits. - [Birthday and anniversary automations](https://docs.customer.io/messaging/send/recipes/birthday-and-anniversary-automations.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Our recipe book](https://docs.customer.io/messaging/send/recipes/book.md): Automations are incredibly flexible, but it can sometimes be hard to map your particular use case to an automation workflow. The recipes we - [Cart abandonment](https://docs.customer.io/messaging/send/recipes/cart-abandonment.md): Whether you’re an e-commerce company or a product company, the techniques used for cart abandonment can help you increase completion rates in any flow where you have drop off. One of the most powerful concepts you’ll learn is how to store context on a profile for easy recall and personalization later. - [Cohort tests](https://docs.customer.io/messaging/send/recipes/cohort-testing.md): When you want to A/B test something other than email content, try a cohort test! Randomly assigning profiles to cohorts gives you a way to perform tests independently of individual messages. - [Delete inactive profiles](https://docs.customer.io/messaging/send/recipes/delete-profiles.md): If a lead doesn - [Double opt-in](https://docs.customer.io/messaging/send/recipes/double-opt-in.md): This document will guide you through the basics of setting up double opt-in functionality for your users. A double opt-in is a good practice to follow in order to improve your deliverability and/or comply with local laws like CASL in Canada. - [Optimize emails with Just Words](https://docs.customer.io/messaging/send/recipes/just-words.md): Automatically A/B test and optimize emails on the fly with Just Words. - [Onboarding automation](https://docs.customer.io/messaging/send/recipes/onboarding-automation.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Reminders for multiple upcoming trips](https://docs.customer.io/messaging/send/recipes/reminders-for-multiple-upcoming-trips.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Trigger automations based on roles](https://docs.customer.io/messaging/send/recipes/role-based-messaging-automation.md): When you send automations customized by profile roles, you - [RSS feed email automation](https://docs.customer.io/messaging/send/recipes/rss-feed-email-automation.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Trial expiration reminders](https://docs.customer.io/messaging/send/recipes/trial-expiration-reminders.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Send a welcome email](https://docs.customer.io/messaging/send/recipes/welcome-email.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Tag your automations, segments, and data](https://docs.customer.io/messaging/send/tagging-automations.md): Tags are another way to organize and compare your automations, broadcasts, and transactional messages. You can also assign them to [segments](#manage-tags) and data through your [data index](/messaging/profiles/find/using-data-index/). While you can filter by features like automation name and trigger type, you can also use tags to group automations based on other information, like themes or goals. Create, assign, edit, and delete as many tags as you need in your workspace. - [Supported time zone formats](https://docs.customer.io/messaging/send/timezones/example-timezones.md): Customer.io Documentation - Learn how to use Customer.io for customer messaging and engagement. - [Send messages in users' time zones](https://docs.customer.io/messaging/send/timezones/match.md): Customer.io aims to help you send the right messages at the right time to your users. Two critical parts of this are sending messages in a given profile - [Queue draft for automation QA](https://docs.customer.io/messaging/send/timezones/queue-as-draft.md): Great messaging is no simple task. Deep personalization drives higher opens, clicks, engagement, and results. But it also makes your lifecycle automations more complex to design, build, and deploy. The more moving parts you add — automation, segmentation, dynamic content, and filters — the more likely that something can go wrong. This article shows you three ways to use - [Sending behavior options](https://docs.customer.io/messaging/send/timezones/queue-draft.md): We offer three sending behavior options for your messages: queue draft, send automatically, and don - [Recommended send time](https://docs.customer.io/messaging/send/timezones/recommended-send-time.md): When you send an email from an automation or a one-time send, Customer.io can recommend an appropriate send time based on your users - [Default sending settings](https://docs.customer.io/messaging/send/timezones/sending-behavior.md): Sending behavior determines how we handle messages for your automation or broadcast—whether messages send automatically or not, whether we track links or not, etc. - [Common transactional API errors](https://docs.customer.io/messaging/send/transactional/api-common-api-errors.md): Successful transactional requests return *200 OK*. If you get another response, something probably went wrong! This page can help you better understand and troubleshoot errors you receive from the transactional API. - [Transactional API examples](https://docs.customer.io/messaging/send/transactional/api-examples.md): This page contains some example requests to help get you started with our transactional API. - [Getting started: key transactional concepts](https://docs.customer.io/messaging/send/transactional/api.md): Transactional messages are emails, SMS, or push notifications that your audience implicitly opts-into, like a transaction receipt or a password reset request. You can send transactional messages programmatically through Customer.io. This page contains basic information about our transactional messaging service and how it differs from marketing automations and messages. - [Automations with transactional messages](https://docs.customer.io/messaging/send/transactional/automation.md): You can use an automation to send a transactional message. This can be helpful if you want to send transactional messages that aren - [Set up a transactional email](https://docs.customer.io/messaging/send/transactional/email.md): Transactional messages are email or push notifications that your audience implicitly opts-into, like a transaction receipt or a password reset request. You can send transactional messages programmatically through Customer.io. - [Transactional FAQ](https://docs.customer.io/messaging/send/transactional/faq.md): This page contains answers to frequently asked questions about our transactional API. - [Set up a transactional in-app message](https://docs.customer.io/messaging/send/transactional/in-app.md): Transactional in-app messages render in your application through the Customer.io SDK. Use them for time-sensitive, customer-initiated messages like order confirmations or two-factor codes that you want to deliver inside your product. - [Set up a transactional push](https://docs.customer.io/messaging/send/transactional/push.md): Transactional messages are email or push notifications that your audience implicitly opts-into, like a transaction receipt or a password reset request. You can send transactional messages programmatically through Customer.io. - [Set up a transactional SMS message](https://docs.customer.io/messaging/send/transactional/sms.md): Transactional SMS messages are text messages that your audience implicitly opts-into, like order confirmations, password reset codes, or account verification messages. You can send transactional SMS messages programmatically through Customer.io. - [Set up a transactional WhatsApp message](https://docs.customer.io/messaging/send/transactional/whatsapp.md): Transactional WhatsApp messages are messages that your audience implicitly opts-into, like order confirmations, password reset codes, or account verification messages. You can send transactional WhatsApp messages programmatically through Customer.io. - [Automations, broadcasts, and transactional messages](https://docs.customer.io/messaging/send/types-of-automations-and-broadcasts.md): We support a range of automations, broadcasts, and transactional messages to help you automate interactions with your audience at the right time. - [A/B tests](https://docs.customer.io/messaging/send/workflows/a-b-test-automations.md): A/B testing lets you test different versions of email, push notifications, and SMS messages in your automation, so you can measure which version performs better. For email, this means you can test subject lines against each other, different versions of your call to action, or try out new designs. For SMS and push notifications, you can test for content, imagery, or even deep links. - [Add conditions to messages, data blocks, or delays](https://docs.customer.io/messaging/send/workflows/action-conditions.md): You can control which customers enter your automations with triggers, filters, and frequency settings. You can also add **conditions** to messages, data blocks, and delays to filter your audience within your automation. - [Create or update profile](https://docs.customer.io/messaging/send/workflows/attribute-updates/create-update-profile.md): This action lets you update a profile. You can update the profile currently in your automation workflow, or you can update a related profile. If this related profile doesn - [Fix inconsistent attribute names](https://docs.customer.io/messaging/send/workflows/attribute-updates/how-to-use-attribute-updates-to-fix-typos-in-your-data.md): Have you ever added data to Customer.io and noticed typos after the fact? Or realized you - [Reformat timestamp attributes](https://docs.customer.io/messaging/send/workflows/attribute-updates/how-to-use-attribute-updates-to-reformat-timestamps.md): In Customer.io, you need to format timestamps as Unix epochs to full take advantage of them. If you - [Set journey attributes](https://docs.customer.io/messaging/send/workflows/attribute-updates/set-journey-attributes.md): Journey attributes help you temporarily store data that you want to use in your automation—like properties from a webhook or data from a collection query. - [Batch update](https://docs.customer.io/messaging/send/workflows/batch-update.md): A batch update lets you apply data to a group of up to 1,000 profiles matching your criteria. For each profile your batch update matches, you can update attributes or send events (to trigger a message automation, for example). - [Exit blocks](https://docs.customer.io/messaging/send/workflows/branches/exit-blocks.md): Exit blocks allow you to force a set of users who are following a given path to exit the automation. - [Multi-split branches](https://docs.customer.io/messaging/send/workflows/branches/multi-split.md): A multi-split branch sends profiles down different paths based on one or more conditions. Profiles go down the first path they match. - [Random cohorts](https://docs.customer.io/messaging/send/workflows/branches/random-cohort.md): A Random Cohort action randomly distributes profiles across up to 20 different paths in your workflow. It provides a way to test different messages or actions in an automation. - [True/false branches](https://docs.customer.io/messaging/send/workflows/branches/true-false.md): A true/false branch sends your audience down different paths based on conditions. Customers matching the conditions go down one path; customers who don - [Types of branches](https://docs.customer.io/messaging/send/workflows/branches/types.md): Branches help you personalize automations or test different messages in an automation. When profiles reach a flow-control block in your workflow, we - [Automation workflow builder](https://docs.customer.io/messaging/send/workflows/builder.md): Our visual workflow builder helps you construct message and action sequences on an open canvas. After you create an automation, you - [Copy workflow items](https://docs.customer.io/messaging/send/workflows/copying-workflow-items.md): Do you have a successful automation workflow you want to replicate or a fine-tuned set of messages in one automation that you want to re-use in another? No problem! You can copy workflow items from one automation to another, even if your automations are in different workspaces! - [Time window](https://docs.customer.io/messaging/send/workflows/delays/delivery-window.md): Delay a message so it only sends during a time window you set. For example, you can set a message to only send during your business hours, during specific hours in your user - [Randomized delay](https://docs.customer.io/messaging/send/workflows/delays/random-delay.md): Use the *Randomized Delay* action to control the volume of requests (webhooks or messages) sent to downstream services. This helps you workaround limited developer resources or services that don - [Wait until...](https://docs.customer.io/messaging/send/workflows/delays/wait-until.md): Use the *Wait Until* item to hold a profile in an automation until they meet a condition or enter a segment. - [Send events from your workflow](https://docs.customer.io/messaging/send/workflows/event-action.md): You can create an event within an automation through the *Send event* block. This makes it easy to trigger other automations or add profiles to segments. For webhook-triggered automations, this makes it easy to reshape and associate data from an outside source with profiles in your workspace, all without having to talk to a developer or write your own integration. - [Holdout tests](https://docs.customer.io/messaging/send/workflows/holdout-test.md): A *holdout* is a type of A/B test for emails. But, rather than testing how your audience responds to variations of a message, a holdout test helps you test how your audience responds when they receive a message and when they don - [LLM actions: generate data & decisions with AI](https://docs.customer.io/messaging/send/workflows/llm-actions.md): A **Run LLM action** lets you prompt a Large Language Model (LLM) to generate and store data for use throughout an automation. It - [Send and receive data with webhook actions](https://docs.customer.io/messaging/send/workflows/webhooks/action.md): The *Send and receive data* action represents a webhook. Webhooks let you pass data to, and return data from, just about any public API on the internet. You can use it to update a profile - [Send in-app messages using webhooks](https://docs.customer.io/messaging/send/workflows/webhooks/in-app-message-webhooks.md): You can use webhooks to send in-app messages through other platforms. Webhooks provide a way to access public APIs and services outside of Customer.io. We treat webhooks like messages: when someone reaches a webhook in your automation, we - [Send direct mail with Lob](https://docs.customer.io/messaging/send/workflows/webhooks/lob-webhook-integration.md): Using webhooks, you can trigger personalized direct mail right from your automations, so you can reach profiles physically in addition to other message channels. - [Configure reusable webhooks](https://docs.customer.io/messaging/send/workflows/webhooks/manager.md): In Workspace Settings, create webhook configurations to reuse across automations and broadcasts and secure your credentials. - [Web push with webhooks](https://docs.customer.io/messaging/send/workflows/webhooks/web-push-webhooks.md): You can use webhooks to trigger web push messages from other platforms as a part of your automations.