> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://www.glideapps.com/docs/essentials/basic-columns/types-of-text/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://www.glideapps.com/_mcp/server. # Types of Text Columns > Add different text values to your app. **Text columns** can hold five different types of text in your app: * Plain text * Rich text * Emojis * Email addresses * Multiple texts ## Plain text ![Types of Text - Plain Text](/docs/_fern-img/9a7faa61735600cedef0dbe32bef2914e850dea9b1cbbb9e34a1dfe323cc1ba7.webp) A plain text column holds exactly that—plain, unformatted text values. This can be used for a wide range of purposes such as storing names, locations, addresses, roles, comments, notes, tasks, days of the week, months of the year, etc. Your text can also include emojis. You can display this information in your app using various [**Components**](/docs/essentials/components), or as [**Column Values**](/docs/reference/values/column-values) when setting up [**Collections**](/docs/essentials/components/collections) and components. The appearance of the plain text values in your app depends on the formatting options available for the chosen component. ## Rich Text ![Types of Text - Rich Text](/docs/_fern-img/311cbe8cd36a1794a8df8173bf61c05eb24e560c03d3f625d652b66c5f3886ad.webp) A rich text column holds text that can be formatted or styled as italic text, bold text, headers, bullet points, numbered lists, links, and more using Markdown syntax. Values in a rich text column can be displayed with the specified styling using the [**Rich Text Component**](/docs/essentials/components/rich-text) in your app. For an in-depth explanation of what Markdown is and how to use it, check out the [**Markdown Guide**](https://www.markdownguide.org/getting-started). If you'd like to try a browser-based Markdown text editor, try [**StackEdit**](https://stackedit.io/). ## Emoji ![Types of Text - Emoji](/docs/_fern-img/100f4873d8067916f90adbd644f6b6202740847ba0a8aafcc12bfa44be01cbf1.webp) An emoji column can hold one or more emojis as well as plain text. If you use multiple emojis in a row (or emoji and plain text), you can display the information in your app in the same way as you would display plain text values. You can also display emojis in this column as the image in a collection component. When configuring the component, select the emoji column as the Column Value in the image field. Glide will use the emoji as the image for that collection item. If a row has more than one emoji in the column, Glide will use the first emoji as the image. ## Email ![Types of text - Email](/docs/_fern-img/8618eae6be2d9226e122bd20a4c93bf8610c9d1d21786f8bad1bde41479a4c2a.webp) An email column holds email addresses. You can display the values in this column in your app using any component that displays a text value or as Column Values when setting up collections and components. You can use the values in this column in multiple [**Actions**](/docs/getting-started/introduction-to-actions) like [**Send Email**](/docs/automation/actions/send-email) and [**Compose Email**](/docs/automation/actions/compose-email), as well as with integrations like [**Gmail**](/docs/automation/integrations/gmail) and [**Microsoft Outlook**](/docs/automation/integrations/microsoft-outlook). Email addresses in a table can also be used in [**Forms**](/docs/use-cases/forms) so that, when a user who's signed in to your app submits a form, they don't need to manually share their email address with you. ## **Multiple Texts** The **Multiple Texts** column stores multiple text values as an array. This allows users to assign multiple [Roles](/docs/essentials/security-and-user-data/roles) to a single user and use those roles with Row Owners to control which data each user can access. When a multiple texts column is used with [Row Owners](/docs/essentials/security-and-user-data/row-owners), users gain access to rows if any of the values in their array match any of the row owner columns. For example, if a user has `Manager, Finance` in their roles, they can access rows where a row owner column contains `Manager`, `Finance`, or both. ### How to populate a Multiple Texts column **Multiple Texts** columns cannot be edited directly in the [Data Editor](/docs/getting-started/introduction-to-the-data-editor). You must use a [Workflow](/docs/automation/workflows) to populate them: #### Multiple Texts Column: How to Populate a Multiple Texts Column Create a [Make Array](/docs/automation/computed-columns/make-array-column) column that combines the text values you want to include (e.g., Role 1, Role 2). Create a **Multiple Texts** column to store the array. Create a [Manual Workflow](/docs/automation/workflows/manual) with a [Loop](/docs/automation/workflows/loops) through the table where you created the **Multiple Texts** column. Inside the **Loop**, add a [Set Column Values](/docs/automation/actions/set-column-values) action. Set the **Multiple Texts** column value to the **Make Array** column you created. Run the **Workflow** to populate the **Multiple Texts** column for all rows. > **Editing multiple texts columns** > > When a **Multiple Texts column** is used for [Roles](/docs/essentials/security-and-user-data/roles), it cannot be edited through [Forms](/docs/use-cases/forms), [Edit Screens](/docs/automation/actions/show-edit-screen), or [App Interaction Workflows](/docs/automation/workflows/user-interaction). To update role values, use workflows such as [Manual Trigger](/docs/automation/workflows/manual), [Scheduled Trigger](/docs/automation/workflows/schedule), [Email Trigger](/docs/automation/workflows/email-trigger), [Slack Trigger](/docs/automation/workflows/slack-trigger), [Webhook Trigger](/docs/automation/workflows/webhook), or [Human-in-the-loop workflows](/docs/automation/workflows/human-in-the-loop). ### Using Multiple Texts for Roles Once you've created your **Multiple Texts** column and workflow, here's how to use them for role-based access: #### Multiple Texts: Using Multiple Texts for Roles In the table you want to control access to (e.g., Tasks), add [Text Columns](/docs/essentials/basic-columns/types-of-text) with the same role names you used in your **User Profile** table (e.g., Department, Employee Type). Make those columns [Row Owners](/docs/essentials/security-and-user-data/row-owners). For each row in those tables, enter which roles should have access (e.g., Finance, Manager). In the [Form](/docs/use-cases/forms) where you are adding new users, set the **Workflow** you created as the on-submit action. Go to [User Profile](/docs/essentials/security-and-user-data/user-profiles) in the [Layout Editor](/docs/getting-started/intro-to-layout#layout-editor) and select the **Multiple Texts** column that you created previously in the [Role](/docs/essentials/security-and-user-data/roles) field. Now, when a new user is added with assigned roles, the **Workflow** automatically populates their **Multiple Texts** column, and they'll have access to any rows where their roles match the **Row Owners.** ## Frequently Asked Questions #### Can I edit a Multiple Texts column directly in the Data Editor? No. Multiple texts columns cannot be edited directly. #### Do I need to keep the Make Array column after populating the multiple texts column? Yes, if you plan to update the **Multiple Texts** column in the future. The **Make Array** column dynamically combines your role values, and the workflow references it to update the **Multiple Texts** column. #### What's the difference between using Multiple Texts for roles versus the Google Sheets array method? Both allow multiple roles per user. The Google Sheets method requires creating sequentially numbered columns (Role 1, Role 2, Role 3) in Google Sheets. **Multiple texts** works with Glide Tables and and gives you more control over how roles are assigned and updated. > Add different text values to your app.