> For the complete documentation index, see [llms.txt](https://docs.klai.studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.klai.studio/v1/reference.md).

# Reference

- [Site Settings](https://docs.klai.studio/v1/reference/site-settings.md)
- [Navigation](https://docs.klai.studio/v1/reference/site-settings/navigationoverview.md)
- [Slots / Code Injection](https://docs.klai.studio/v1/reference/site-settings/slots-code-injection.md): There are many ways to inject code throughout your site. Slots are the primary method for doing this
- [App Model](https://docs.klai.studio/v1/reference/site-settings/app-model.md): The App Model functions similar to a page's data model, except that it is accessible to every page in your site. You can also reference data in the App Model from elements that are not bound to a page
- [Site-wide Named Actions](https://docs.klai.studio/v1/reference/site-settings/site-wide-named-actions.md)
- [Page Settings](https://docs.klai.studio/v1/reference/form-settings.md)
- [Data Model](https://docs.klai.studio/v1/reference/form-settings/data-model.md)
- [Card / Window Modals](https://docs.klai.studio/v1/reference/form-settings/card-modals.md): Card modals display other pages as their content.
- [Validation](https://docs.klai.studio/v1/reference/form-settings/validationoverview.md)
- [Custom Validators](https://docs.klai.studio/v1/reference/form-settings/validationoverview/clientside.md)
- [Misc Page Settings](https://docs.klai.studio/v1/reference/form-settings/misc-page-settings.md)
- [Page Elements](https://docs.klai.studio/v1/reference/components-overview.md)
- [Common](https://docs.klai.studio/v1/reference/components-overview/common.md)
- [Button](https://docs.klai.studio/v1/reference/components-overview/common/button.md)
- [Data Table](https://docs.klai.studio/v1/reference/components-overview/common/tables2.md)
- [HTML](https://docs.klai.studio/v1/reference/components-overview/common/html.md)
- [Grouping Elements](https://docs.klai.studio/v1/reference/components-overview/grouping-elements.md)
- [Tabs](https://docs.klai.studio/v1/reference/components-overview/grouping-elements/tabs_form.md): Organize complex forms using a standard tab element
- [panel](https://docs.klai.studio/v1/reference/components-overview/grouping-elements/untitled-1.md)
- [accordion](https://docs.klai.studio/v1/reference/components-overview/grouping-elements/accordion.md)
- [listrows](https://docs.klai.studio/v1/reference/components-overview/grouping-elements/listrows.md)
- [Uploading Files](https://docs.klai.studio/v1/reference/components-overview/uploading-files.md)
- [dropzone](https://docs.klai.studio/v1/reference/components-overview/uploading-files/dropzone.md)
- [dropzone to S3](https://docs.klai.studio/v1/reference/components-overview/uploading-files/dropzone-to-s3.md): How to use the dropzone element to upload files directly to an AWS S3 bucket.
- [uploadCare](https://docs.klai.studio/v1/reference/components-overview/uploading-files/uploadcare.md)
- [Misc Elements](https://docs.klai.studio/v1/reference/components-overview/misc-elements.md)
- [Plain Text / Code Editor](https://docs.klai.studio/v1/reference/components-overview/misc-elements/aceeditor.md)
- [signature](https://docs.klai.studio/v1/reference/components-overview/misc-elements/signature.md)
- [fullCalendar](https://docs.klai.studio/v1/reference/components-overview/misc-elements/fullcalendar.md)
- [rangeSlider](https://docs.klai.studio/v1/reference/components-overview/misc-elements/rangeslider.md)
- [Payment Gateways](https://docs.klai.studio/v1/reference/components-overview/payment-gateways.md)
- [Authorize.net](https://docs.klai.studio/v1/reference/components-overview/payment-gateways/authorize.md)
- [PayPal](https://docs.klai.studio/v1/reference/components-overview/payment-gateways/paypal.md)
- [Stripe](https://docs.klai.studio/v1/reference/components-overview/payment-gateways/stripe.md)
- [Adding Custom Page Elements](https://docs.klai.studio/v1/reference/components-overview/3rd-party-elements.md)
- [Actions Processor](https://docs.klai.studio/v1/reference/actions-processor.md)
- [Named Actions](https://docs.klai.studio/v1/reference/actions-processor/actions_named.md)
- [Actions](https://docs.klai.studio/v1/reference/actions-processor/actions_overview.md)
- [runUtilityHook](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/runutilityhook.md)
- [path](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/path.md)
- [debounce](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/debounce.md): Ver +bf-0.01.4
- [throttle](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/throttle.md): Ver +bf-0.01.4
- [showAlert](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/showalert.md)
- [showModal / hideModal](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/showmodal.md): Displays a full screen modal dialogue with customizable buttons
- [function](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/function-1.md)
- [clipboard](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/clipboard.md)
- [cookie](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/cookie.md)
- [setFocus](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/setfocus.md)
- [wait](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/wait.md): pause the actions queue for an amount of time specified
- [emit](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/emit.md)
- [validate](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/validate.md)
- [channelJoinAnon](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/channeljoinanonymous.md): Adds user to anonymous channel
- [channelLeaveAnon](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/channelleaveanon.md): Removes user from anonymous channel
- [messageSend](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/messagesend.md)
- [messageSendAnonChannel](https://docs.klai.studio/v1/reference/actions-processor/actions_overview/messagesendanonchannel.md)
- [Authentication Actions](https://docs.klai.studio/v1/reference/actions-processor/authentication-actions.md)
- [Script Hooks](https://docs.klai.studio/v1/reference/hooksoverview.md)
- [Globals Variables](https://docs.klai.studio/v1/reference/hooksoverview/filemaker-globals.md)
- [$$BF\_Model](https://docs.klai.studio/v1/reference/hooksoverview/filemaker-globals/usdusdbf_model.md)
- [$$BF\_App](https://docs.klai.studio/v1/reference/hooksoverview/filemaker-globals/usdusdbf_app.md)
- [$$BF\_State](https://docs.klai.studio/v1/reference/hooksoverview/filemaker-globals/usdusdbf_state.md): The state object holds various data related to the browser environment.
- [Keeping Keys Private](https://docs.klai.studio/v1/reference/hooksoverview/payloadobject.md)
- [Reducing Payload Size](https://docs.klai.studio/v1/reference/hooksoverview/env_vars.md)
- [API Callback Endpoint](https://docs.klai.studio/v1/reference/hooksoverview/callback.md)
- [Common Hooks](https://docs.klai.studio/v1/reference/hooksoverview/commonoverview.md)
- [Scoped Hooks](https://docs.klai.studio/v1/reference/hooksoverview/hooks.md): Scoped hooks are specific to the page on which they are initiated and contain relevant data about the page context
- [Users & Authentication](https://docs.klai.studio/v1/reference/users-and-authentication.md): This section will guide you through how authentication is built into BetterForms and how you can customize its behavior to meet the needs of your app.
- [Managing User Accounts](https://docs.klai.studio/v1/reference/users-and-authentication/managing-users.md)
- [Custom Login Pages](https://docs.klai.studio/v1/reference/users-and-authentication/custom-login-pages.md)
- [Advanced Configuration](https://docs.klai.studio/v1/reference/advanced-configuration.md)
- [Custom Domains](https://docs.klai.studio/v1/reference/advanced-configuration/custom-domains.md)
- [BF Utility Functions](https://docs.klai.studio/v1/reference/bf-utility-function-ver-0.9.20+.md): BetterForm has a collection of helper Java Script functions that are used within JavaScript to allow  easy access to common complex code.
- [BF Error Codes](https://docs.klai.studio/v1/reference/bf-error-codes.md): FM BetterForms can throw various errors due to code or configuration. Errors can appear in the Helper File, Developer Tools ( when enabled) or the browser console. For the lates list of error code see
- [Messaging](https://docs.klai.studio/v1/reference/messaging-ver-0.10.14+.md): Messaging is intended to be used for real-time features, such as notifications, chat or auto updates. Messaging also allows data to be pushed from FileMaker into your BetterForms apps.
- [Adding users to channels](https://docs.klai.studio/v1/reference/messaging-ver-0.10.14+/adding-users-to-channels.md): You can add users to channels either by calling a FileMaker script in the Helper File, or by calling a REST API endpoint of your BetterForms domain.
- [Removing users from channels](https://docs.klai.studio/v1/reference/messaging-ver-0.10.14+/removing-users-from-channels.md): Similar to adding users, you can remove users either by a REST API call, or via a FileMaker script in your helper file.
- [Sending messages](https://docs.klai.studio/v1/reference/messaging-ver-0.10.14+/sending-messages.md): Once your users are subscribed to a channel or two, you can send messages to them!
- [Get connected users](https://docs.klai.studio/v1/reference/messaging-ver-0.10.14+/get-all-users-connected.md)
- [Get active channels](https://docs.klai.studio/v1/reference/messaging-ver-0.10.14+/get-active-channels.md)
