How Plain prepared their website for AI search

Discover Plain's customer cards for live context from your systems, enhancing customer support and boosting efficiency. Explore our comprehensive documentation!

This implementation showcases how to leverage APIs for dynamic customer data integration. Readers will gain insights into the creation, management, and customization of customer cards, along with best practices for API interactions and attachment handling.

90
Lines
-91% vs avg
1
Sections
-94% vs avg
1000+
Companies
using llms.txt
2
Files
llms.txt + full

Key Insights

Focused approach

A streamlined 1-section structure keeps things simple and scannable.

Optimal length

At 90 lines, this file balances detail with AI context window efficiency.

Two-file approach

Uses both llms.txt and llms-full.txt for different AI use cases.

llms.txt Preview

First 90 lines of 90 total

# Plain Docs

## Docs

- [Customer cards](https://www.plain.com/docs/customer-cards.md): Live context straight from your own systems when helping customers.
- [Create a customer card](https://www.plain.com/docs/customer-cards/create-a-customer-card.md): Define the details of the customer card.
- [Examples](https://www.plain.com/docs/customer-cards/examples.md)
- [Playground](https://www.plain.com/docs/customer-cards/playground.md)
- [Protocol](https://www.plain.com/docs/customer-cards/protocol.md): Learn how we request customer cards from your API and how to respond to these requests.
- [API Explorer](https://www.plain.com/docs/graphql/api-explorer.md)
- [Attachments](https://www.plain.com/docs/graphql/attachments.md): How to upload attachments programmatically for messages and events in Plain.
- [Authentication](https://www.plain.com/docs/graphql/authentication.md)
- [Companies](https://www.plain.com/docs/graphql/companies.md)
- [Get companies](https://www.plain.com/docs/graphql/companies/get-companies.md)
- [Update customer company](https://www.plain.com/docs/graphql/companies/update-customer-company.md)
- [Customers](https://www.plain.com/docs/graphql/customers.md)
- [Customer groups](https://www.plain.com/docs/graphql/customers/customer-groups.md)
- [Delete customers](https://www.plain.com/docs/graphql/customers/delete.md)
- [Fetch customers](https://www.plain.com/docs/graphql/customers/get.md)
- [Upserting customers](https://www.plain.com/docs/graphql/customers/upsert.md): Learn how to create and update customers programmatically.
- [Error codes](https://www.plain.com/docs/graphql/error-codes.md): If you receive an error code as part of an API call, this is where you can look up what it means
- [Error handling](https://www.plain.com/docs/graphql/error-handling.md): GraphQL queries and mutations require different error handling.
- [Events](https://www.plain.com/docs/graphql/events.md): Log important events to have the full picture of what happened in Plain.
- [Create a customer event](https://www.plain.com/docs/graphql/events/create-customer-event.md)
- [Create a thread event](https://www.plain.com/docs/graphql/events/create-thread-event.md)
- [Introduction](https://www.plain.com/docs/graphql/introduction.md): An overview of Plain's GraphQL API.
- [Labels](https://www.plain.com/docs/graphql/labels.md)
- [Add labels](https://www.plain.com/docs/graphql/labels/add.md)
- [Remove labels](https://www.plain.com/docs/graphql/labels/remove.md)
- [Messaging](https://www.plain.com/docs/graphql/messaging.md)
- [Reply to emails](https://www.plain.com/docs/graphql/messaging/reply-email.md)
- [Reply to threads](https://www.plain.com/docs/graphql/messaging/reply-to-thread.md)
- [Send new emails](https://www.plain.com/docs/graphql/messaging/send-email.md)
- [Pagination](https://www.plain.com/docs/graphql/pagination.md)
- [Schema](https://www.plain.com/docs/graphql/schema.md)
- [Tenants](https://www.plain.com/docs/graphql/tenants.md)
- [Add customers to tenants](https://www.plain.com/docs/graphql/tenants/add-customers.md)
- [Get tenants](https://www.plain.com/docs/graphql/tenants/get.md)
- [Remove customers to tenants](https://www.plain.com/docs/graphql/tenants/remove-customers.md)
- [Set customer tenants](https://www.plain.com/docs/graphql/tenants/set-customer-tenants.md)
- [Upserting tenants](https://www.plain.com/docs/graphql/tenants/upsert.md)
- [Threads](https://www.plain.com/docs/graphql/threads.md)
- [Assignment](https://www.plain.com/docs/graphql/threads/assignment.md)
- [null](https://www.plain.com/docs/graphql/threads/autoresponders.md)
- [Create threads](https://www.plain.com/docs/graphql/threads/create.md)
- [Changing status](https://www.plain.com/docs/graphql/threads/status-changes.md)
- [Thread fields](https://www.plain.com/docs/graphql/threads/thread-fields.md)
- [Tiers & SLAs](https://www.plain.com/docs/graphql/tiers.md)
- [Add companies and tenants to tiers](https://www.plain.com/docs/graphql/tiers/add-members.md)
- [Get tiers](https://www.plain.com/docs/graphql/tiers/get.md)
- [Remove companies and tenants to tiers](https://www.plain.com/docs/graphql/tiers/remove-members.md)
- [Update company tier](https://www.plain.com/docs/graphql/tiers/update-company-tier.md)
- [Update tenant tier](https://www.plain.com/docs/graphql/tiers/update-tenant-tier.md)
- [Typescript SDK](https://www.plain.com/docs/graphql/typescript-sdk.md)
- [mTLS](https://www.plain.com/docs/mtls.md)
- [Request signing](https://www.plain.com/docs/request-signing.md)
- [UI Components](https://www.plain.com/docs/ui-components.md)
- [Badge](https://www.plain.com/docs/ui-components/badge.md): Useful for statuses or when you need to attract attention to something.
- [Container](https://www.plain.com/docs/ui-components/container.md): Useful when you need to create a bit of structure.
- [CopyButton](https://www.plain.com/docs/ui-components/copy-button.md): Useful if you have any IDs or other details you want to copy for use in messages or outside of Plain.
- [Divider](https://www.plain.com/docs/ui-components/divider.md): Useful when you need a bit of structure.
- [LinkButton](https://www.plain.com/docs/ui-components/link-button.md): Useful when you want to link somewhere external (e.g. your own admin tool or payment provider)
- [PlainText](https://www.plain.com/docs/ui-components/plain-text.md): Useful when you want to show any text that should not have any formatting (is not Markdown). If you want markdown please use [Text](/ui-components/text).
- [Row](https://www.plain.com/docs/ui-components/row.md): Useful when you need to show two things next to each-other.
- [Spacer](https://www.plain.com/docs/ui-components/spacer.md)
- [Text](https://www.plain.com/docs/ui-components/text.md)
- [Webhooks](https://www.plain.com/docs/webhooks.md)
- [Customer created](https://www.plain.com/docs/webhooks/customer-created.md)
- [Customer deleted](https://www.plain.com/docs/webhooks/customer-deleted.md)
- [Customer Group Membership Changed Event](https://www.plain.com/docs/webhooks/customer-group-membership-changed.md)
- [Customer updated](https://www.plain.com/docs/webhooks/customer-updated.md)
- [Thread assignment transitioned](https://www.plain.com/docs/webhooks/thread-assignment-transitioned.md)
- [Chat received](https://www.plain.com/docs/webhooks/thread-chat-received.md)
- [Chat sent](https://www.plain.com/docs/webhooks/thread-chat-sent.md)
- [Thread created](https://www.plain.com/docs/webhooks/thread-created.md)
- [Email received](https://www.plain.com/docs/webhooks/thread-email-received.md)
- [Email sent](https://www.plain.com/docs/webhooks/thread-email-sent.md)
- [Thread Field created](https://www.plain.com/docs/webhooks/thread-field-created.md)
- [Thread Field deleted](https://www.plain.com/docs/webhooks/thread-field-deleted.md)
- [Thread Field updated](https://www.plain.com/docs/webhooks/thread-field-updated.md)
- [Thread labels changed](https://www.plain.com/docs/webhooks/thread-labels-changed.md)
- [Note created](https://www.plain.com/docs/webhooks/thread-note-created.md)
- [Thread priority changed](https://www.plain.com/docs/webhooks/thread-priority-changed.md)
- [Thread SLA status transitioned](https://www.plain.com/docs/webhooks/thread-service-level-agreement-status-transitioned.md)
- [Slack message received](https://www.plain.com/docs/webhooks/thread-slack-message-received.md)
- [Slack message sent](https://www.plain.com/docs/webhooks/thread-slack-message-sent.md)
- [Thread status transitioned](https://www.plain.com/docs/webhooks/thread-status-transitioned.md)
- [Webhooks and Typescript](https://www.plain.com/docs/webhooks/typescript.md)
- [Webhook Versions](https://www.plain.com/docs/webhooks/versions.md)

Plain is set up. Is yours?

Check your AI readiness in 30 seconds. See who AI recommends in your space. Free, no signup.

1000+ sites already set up

Plain is ready for AI. Are you?

Check your AI readiness score in 30 seconds — free, no signup required. Then generate your own llms.txt and start tracking your visibility.