Privacy-first connections: Empowering social experiences at Airbnb

Sitemap

[

The Airbnb Tech Blog

](https://medium.com/airbnb-engineering?source=post_page---publication_nav-53c7c27702d5-d7dec59ef960---------------------------------------)

[

The Airbnb Tech Blog

](https://medium.com/airbnb-engineering?source=post_page---post_publication_sidebar-53c7c27702d5-d7dec59ef960---------------------------------------)

Creative engineers and data scientists building a world where you can belong anywhere. http://airbnb.io

Discover how Airbnb prioritizes user privacy while building a more connected community, empowering guests to engage socially, connect confidently, and maintain control of their personal data.

Cover photo of 4 strangers becoming friends in a coffee shop sitting around a coffee table with a variety of drinks on the table.

Cover photo of 4 strangers becoming friends in a coffee shop sitting around a coffee table with a variety of drinks on the table.

By: Joy Jing

✨ Building a more connected community

At Airbnb, our hosts and guests form the heart of our community. As shared by CEO Brian Chesky, we’re evolving into a more social ecosystem. Airbnb Experiences now highlight the people involved as much as the activity. Guests can see Who’s going on an Experience, message co-guests directly, and view people they’ve met through the Connections section in their Airbnb profile. Guests are able to choose to share their profile for each new Experience. Guests who choose not to share their profile will not have their photo or profile info shared with others outside of their travel group before or during the experience. Our goal is to foster meaningful connections while giving guests control over their privacy.

Mobile screen showing six avatar circles, the heading “Share your profile for this experience,” two bullet-point visibility notes, and action buttons labeled “Don’t share” and “Share profile.

Guests can choose whether to share their profile with other co-guests when booking an Experience.

In this post, we’ll share how we built new social features with privacy by design at their core. You’ll learn about our approach to user privacy, the technical decisions we made, and how we’re empowering guests to control their visibility every step of the way.

👩‍💼 Users vs. Profiles: Why we separate them

At Airbnb, building trust while protecting privacy is fundamental. To achieve this, we’ve made a clear distinction between the concepts of User and Profile.

User represents the complete, internal record we hold about an Airbnb user, including names, email addresses, phone numbers, and account details. This is the information we collect and use when providing our services. Whereas a Profile includes a subset of information about a User and is their public-facing representation. The information displayed on a Profile varies based on whether the user is a host, guest, or both. Users can choose to add as much or little to their profile as they see fit.

For example, as a guest, you might need your host’s phone number for check-in, but other guests reading your review after the stay shouldn’t see any of your contact info.

One user can have multiple profiles. For example, we have Host Profiles for prospective guests to learn more about the host they’ll be staying with.

Brian Chesky Host Profile card, showing 55 reviews, 4.89-star rating, 15 years hosting, plus brief bio details and a “Show all” button.

The Host Profile for CEO Brian Chesky.

We also have Guest Profiles for hosts to learn more about the guests they will be hosting.

Compact Airbnb profile for user Brian Chesky — San Francisco location, stats (284 trips, 164 reviews, 18 years on Airbnb), and brief bio details plus a ‘Show all’ button.

The Guest Profile for CEO Brian Chesky.

We now also create Experience-specific Guest Profiles, which manages how a guest’s profile information is shown to other guests on that experience outside their travel group. If a guest chooses not to share their profile, their profile will not be viewable by others looking to book the Experience. Only their first name will be visible to other guests on the Experience outside of their travel group.

An image of what a profile looks like if someone chooses to be private. Only the first name “Steve” is shared.

How an Experience-specific guest profile will look if the guest chooses to be private on an Airbnb Experience. Only the first name of the Profile is visible to other co-guests.

🆔 How we enable this: Separate identifiers

To deliver this context-aware experience, we’ve introduced two distinct types of identifiers:

  • A User ID that represents the internal user entity.
  • A Profile ID that identifies how that user appears in a specific context.

Each user will only have one User ID, but could have multiple Profile IDs that are used in different contexts. By decoupling these, we enable:

  • Context-awareness: Each profile is visible only where it’s relevant.
  • Flexible representation: Guests can choose how they appear to other guests on each Experience.
  • Privacy controls: By decoupling the User ID and Profile ID, we put mitigations in place to make it more challenging to link profiles across contexts.

Ultimately, this empowers guests to control when their profile data is shared with other guests and hosts, and keeps identity management simple and intuitive.

A diagram with two users: Marie and Alex. Marie has a Guest Profile A associated with the Experience: Pasta Making with Nonna. Maria has a Guest Profile B associated with the Experience: Goat Yoga. Alex has a Guest Profile C associated with the Experience: Goat Yoga. Alex also has a Host Profile associated with his Mountain Cabin in the Swiss Alps.

Diagram showing how different profiles represent a user in various contexts, such as different Airbnb Experiences, or as a host versus a guest. The diagram shows how different profiles are linked to the same user, and how guests on an Experience can only view the co-guest profiles that are specific to that shared Experience.

For example, let’s say Marie chooses to attend an Airbnb Experience called “Pasta Making with Nonna” and decides to remain private. We will create Profile A for Marie, associated with “Pasta Making with Nonna,” which will only surface her first name and will not include her profile photo. If Marie also attends an Airbnb Experience called “Goat Yoga”, we will create a separate Profile B for her associated with “Goat Yoga.” If Marie opts-in to social features on the “Goat Yoga” Airbnb Experience, other co-guests will be able to see her profile photo, guest stats, and other “About me” information, which she can curate from her Profile edit page.

If Alex also attends the Airbnb Experience “Goat Yoga,” he will see Marie’s full Profile B. If Alex happens to browse “Pasta Making with Nonna”, however, he won’t see Marie’s profile photo in the “Who’s going” list. As a result, Alex will not know that Marie from the “Goat Yoga” Airbnb Experience will be attending the “Pasta Making with Nonna” Airbnb Experience as well.

Screen showing an Airbnb experience: “Upcoming availability” card for Thursday Oct 23, 1–4 PM, 3 spots left, guest avatars displayed; below, “Where we’ll meet” lists Los Angeles, CA 90021 with a map preview.

The “Who’s Going” list displays other guests attending an Experience before you book.

As another example, say Alex is a host of a mountain cabin in the Swiss Alps. When he attends the “Goat Yoga” Experience as a guest, his host profile remains separate from his guest profile for that Experience. This means that fellow guests like Marie won’t be able to tell that Alex also hosts a cabin in the Alps, because Alex’s host profile and guest profile are not linked. If Marie later searches for places to stay in the Swiss Alps, she might come across Alex’s cabin listing. However, if Alex has chosen to remain private on the “Goat Yoga” Airbnb Experience, Marie will only see his first name, and won’t be able to know that his guest profile on “Goat Yoga” and his host profile for the mountain cabin represent the same person.

Dialog titled “Your profile settings for this experience” with two radio-button options — selected “Share your profile” and unselected “Don’t share your profile” — plus a “Save” button at the bottom.

Options for guests to control whether their profile should be visible or not for an Experience.

🔐 Permissions

Airbnb users interact with a range of people: fellow travelers, hosts, Airbnb support personnel, and more. Each interaction requires the right privacy boundaries. We use least-privileged access to ensure everyone sees only the data they need.

To manage these permissions, we use Himeji, our in-house authorization system. Himeji enforces access controls at the data layer, ensuring privacy and security beyond just the user interface. One of Himeji’s key optimizations is its ability to perform configurable relation denormalization at write time, when profile information or permissions change. This makes permission checks at read time extremely fast and scalable, enabling users to have a seamless experience even as privacy needs grow more complex.

🔄 Implementation

In order to launch, work was needed to ensure that Airbnb’s platform utilized the right identifier in the right context.

Get Joy Jing’s stories in your inbox

Join Medium for free to get updates from this writer.

1. Automated auditing

We developed Python scripts to audit the codebase, searching for known patterns associated with user data access. This gave us a comprehensive list of candidate locations.

2. Determining team ownership

Our scripts mapped each finding to the owning team via the directory structure. This let us assign migration work directly and efficiently.

3. Manual review for context

Code owners manually reviewed findings, determining whether each instance was internal-only or externally used. This hands-on review layer was critical for accuracy and confidence.

4. AI-powered refactoring

We leveraged AI-powered refactoring tools to suggest code changes based on our audit findings. However, engineers always remained in the loop by reviewing, refining, and applying code updates, which ensured correctness and protected nuanced business logic.

5. Company-wide collaboration

Perhaps the most important ingredient was company-wide alignment. Teams across Airbnb (engineering, product, privacy, legal, and beyond) came together with a shared mission. This collective commitment ensured prioritization, smooth coordination, and ultimately, a successful migration.

🧰 Type safety and migration quality

Strong typing and automated tests were our safety net. We made sure profile IDs and user IDs couldn’t be mixed up accidentally. Code reviews, linters, and type checks enforced boundaries. Progress was tracked in a shared hub, keeping everyone aligned and accountable.

🎯 Our privacy principles

As Airbnb becomes more social, guest privacy stays at the heart of everything we build. Our new context-aware profile IDs lay the groundwork for future features without compromising trust and reflects our commitment to privacy in our Privacy Principles.

If this type of work interests you, check out some of our related positions.

Acknowledgments

It takes a village to build a robust privacy-oriented infrastructure. Special thanks to:

All product names, logos, and brands are property of their respective owners. All company, product and service names used in this website are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.

[

The Airbnb Tech Blog

](https://medium.com/airbnb-engineering?source=post_page---post_publication_info--d7dec59ef960---------------------------------------)

[

The Airbnb Tech Blog

](https://medium.com/airbnb-engineering?source=post_page---post_publication_info--d7dec59ef960---------------------------------------)Last published 11 hours ago

Creative engineers and data scientists building a world where you can belong anywhere. http://airbnb.io

[

Joy Jing

](https://medium.com/@joy.jing1?source=post_page---post_author_info--d7dec59ef960---------------------------------------)

[

Joy Jing

](https://medium.com/@joy.jing1?source=post_page---post_author_info--d7dec59ef960---------------------------------------)4 following

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.1. UTC+08:00, 2026-04-15 14:13
浙ICP备14020137号-1 $访客地图$