iOS SDK
Build an in-app Community
Let customers share ideas, vote on what matters, join discussions, and hear directly from your team.
Enable and configure Community
Community is available in BTXClientKit 3.0.0 or later. Add .community to
the enabled features and use BTXCommunityOptions to match the sheet to your
product and team.
import BTXClientKit
BTX.configure(
BTXConfiguration(
publishableClientKey: "cfk_...",
features: [.community],
communityOptions: BTXCommunityOptions(
title: "Acme Community",
welcomeTitle: "Help shape Acme",
welcomeMessage: "Share ideas, support what matters, and hear directly from our team.",
teamDisplayName: "Acme team"
)
)
)Present Community
Connect a Community entry in your app to BTX.community.present(). When no
customer is identified, the SDK creates a random member identifier that is
stored on the device and tied to the publishable client key. No name or email
is sent.
let result = BTX.community.present()If your app already has accounts, identify the customer at sign-in to use that same identity in Community.
BTX.identify(
BTXCustomer(
externalID: currentUser.id,
name: currentUser.name,
email: currentUser.email
)
)present() returns BTXCommunityPresentationResult. A failure identifies a
disabled feature, missing configuration, or an unavailable presentation
context. Use BTX.community.dismiss() only when the app needs to close the
sheet programmatically.
- Use the publishable client key created for the app's registered iOS bundle.
- Present from a customer-initiated button or settings row.
- Call
BTX.identifyonly when you want Community tied to an existing account.
What customers can do
Community gives customers a place to share ideas and join product conversations without leaving your app.
- Browse popular or recent ideas and share new ones.
- Upvote ideas and see comment counts at a glance.
- Comment on ideas, like comments, and reply to an original comment.
- Recognize participants by their profile image or colored initial.
- See team responses clearly identified with your configured team name and relative timestamps.
Match your app's theme
Community and Messenger are separate options, so pass the same BTXTheme to
both when they should feel like one system. Community uses the SDK default theme
when its theme is omitted.
let appTheme = BTXTheme.dark
BTX.configure(
BTXConfiguration(
publishableClientKey: "cfk_...",
features: [.messenger, .community],
messengerOptions: BTXMessengerOptions(
title: "Chat with Acme Team",
teamDisplayName: "Acme team",
theme: appTheme
),
communityOptions: BTXCommunityOptions(
title: "Acme Community",
welcomeTitle: "Help shape Acme",
teamDisplayName: "Acme team",
theme: appTheme
)
)
)On iOS 26, Community and Messenger use Liquid Glass. Earlier supported iOS versions use a matching native material.
Verify the integration
Run the app with a test customer and exercise the full path before shipping.
- Open Community from the intended entry point in your app.
- Create an idea, upvote it, and open its detail view.
- Add and like a comment, then reply to an original comment.
- Confirm your title, welcome message, team name, and theme appear as expected.
- Confirm customer and team identities display correctly with your project data.