# Getting Started

- [Pandium Documentation](/getting-started/pandium-documentation.md): Learn how to setup and configure Pandium integrations. Get technical information on all our connectors and understand key terminology.
- [What is Pandium?](/getting-started/readme-1.md): Pandium is an embedded integration platform (iPaaS) specifically designed for B2B SaaS companies that need to build and launch customer-facing integrations.
- [The Pandium Platform](/getting-started/readme-1/the-pandium-platform.md): Pandium helps SaaS companies deliver scalable native integrations while offloading authentication, hosting, and logging.
- [What Companies Use Pandium For](/getting-started/readme-1/what-companies-use-pandium-for.md): Pandium’s platform provides SaaS companies with scalable, high-volume integrations without the infrastructure overhead.
- [Platform Structure](/getting-started/readme-1/platform-structure.md): Understand the technical architecture of the Pandium platform. Pandium takes care of the infrastructure required for customer-facing integrations.
- [Users of Pandium](/getting-started/readme-1/users-of-pandium.md): Understand the different types of users that can exist in the Pandium Integration Platform, including platform, engineering, partner and end-customer users.
- [Anatomy of an Integration](/getting-started/anatomy-of-an-integration.md): A more technical look into the structure of Pandium and a deeper dive into the workings of how integrations are hosted and run on our platform.
- [Run Triggers](/getting-started/anatomy-of-an-integration/run-triggers.md): Control how Pandium integrations sync data with cron, manual, webhook, and API run triggers, including payload handling and debouncing per tenant.
- [Run Failures](/getting-started/anatomy-of-an-integration/run-failures.md): Learn about Pandium run failures, their causes (integration, refresh, platform, timeout), and how to troubleshoot or report issues effectively.
- [PANDIUM.yaml](/getting-started/anatomy-of-an-integration/pandium.yaml-spec.md): Learn how to structure and configure your PANDIUM.yaml file to build, run, and customize integrations on the Pandium platform using schema and UI settings.
- [Schema](/getting-started/anatomy-of-an-integration/pandium.yaml-spec/schema.md): Define PANDIUM.yaml schema properties for Boolean, integer, number, string, enum, array, and multi-select configs to control integration connection settings in Pandium.
- [UiSchema](/getting-started/anatomy-of-an-integration/pandium.yaml-spec/uischema.md): Configure PANDIUM.yaml UISchema elements to control how integration settings are labeled, ordered, and laid out on the Pandium connection settings page.
- [Dynamic Configurations](/getting-started/anatomy-of-an-integration/pandium.yaml-spec/dynamic-configurations.md): Define dynamic configs in PANDIUM.yaml using schema definitions and init syncs that fetch tenant-specific options from APIs or databases for Pandium integrations.
- [Dependent Selector Configurations](/getting-started/anatomy-of-an-integration/pandium.yaml-spec/dependent-selector-configurations.md): Create dependent selector configs in PANDIUM.yaml where dynamic dropdown options update based on a parent field’s value, using schema definitions and init sync outputs.
- [BETA: Tenant Metadata](/getting-started/anatomy-of-an-integration/pandium.yaml-spec/beta-tenant-metadata.md): Learn how to store tenant specific information for your customers.
- [Environment Variables](/getting-started/anatomy-of-an-integration/environment-variables.md): Manage Pandium environment variables for context, configs, and secrets using PAN\_CTX, PAN\_CFG, and PAN\_SEC pas three types of environment variables that are presented to a script at run-time.
- [Context: StdOut](/getting-started/anatomy-of-an-integration/environment-variables/stdout.md): Use Pandium context stdout variables (PAN\_CTX\_\*) to persist state, inspect run metadata, and power dynamic syncs between integration runs via JSON output.
- [Logging (StdErr)](/getting-started/anatomy-of-an-integration/environment-variables/stderr.md): Log integration messages to stderr in Pandium so users can view run output and errors in the Integration Hub and In-App Marketplace across integrations and tenants.
- [Key Terminology](/getting-started/key-terminology.md): Understand core Pandium terms like Integration Hub, In-App Marketplace, connectors, tenants, runs, releases, and PANDIUM.yaml to navigate and manage the platform effectively.
- [Pandium Integration Tutorial](/getting-started/pandium-integration-tutorial.md): Build your first Pandium integration by following a guided tutorial that walks you through creating and publishing a Slack-powered “Pokémon of the Day” app in under a day.
- [Pokémon of the Day, Part 1](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1.md): Build your first Pandium integration by connecting Slack, configuring tenants, and scheduling runs to send a unique “Pokémon of the Day” message without repeats.
- [Create App in Slack to get Credentials](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/create-app-in-slack-to-get-credentials.md): Create a Slack app and configure OAuth, redirect URLs, and bot permissions so you can securely use its client ID and secret to connect Slack to your Pandium integration.
- [Create Integration on the Pandium Integration Hub](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/create-integration-on-the-pandium-integration-hub.md): Create and configure an internal “Pokémon of the Day” integration in the Pandium Integration Hub by connecting Slack OAuth, setting schedules, and bootstrapping your TypeScript repo.
- [Make a Tenant](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/make-a-tenant.md): Create and connect a “Pokémon of the Day” tenant in the Pandium Integration Hub by linking Slack, choosing the Latest release channel, and configuring schedule and settings.
- [Write the Integration in Typescript](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript.md): Write a TypeScript “Pokémon of the Day” integration for Pandium by customizing the starter repo, updating package settings, installing dependencies, and building before each run.
- [Add the .env](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript/add-the-.env.md): Configure a .env for your Pandium TypeScript integration by storing Slack OAuth tokens, run mode, and PAN\_SEC secrets locally while keeping them ignored from version control.
- [Configure the PANDIUM.yaml](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript/configure-the-pandium.yaml.md): Customize the connection settings page so it doesn't display options that aren't relevant to the Pokémon Trainer Academy's requests.
- [Check the Customized Connection Settings Page](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript/check-the-customized-connection-settings-page.md): Customize and verify your Pandium connection settings by building a new release, updating the tenant on the Latest channel, and confirming the cleaned-up settings page.
- [Add the Pokémon client](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript/add-the-pokemon-client.md): Fetch Pokémon data in your Pandium TypeScript integration by installing a Pokédex client, initializing it in code, and calling it to retrieve a test Pokémon before wiring real logic.
- [Add the Slack Client](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript/add-the-slack-client.md): Connect Slack to your Pandium TypeScript integration by installing the Slack Web API client, authenticating with your bot token, and listing workspace users to target future messages.
- [Add the pokemonSync flow](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript/add-the-pokemonsync-flow.md): Send unique daily Pokémon updates from your Pandium integration by adding a pokemonSync flow that fetches Pokémon, posts Slack messages, and advances IDs using saved stdout state.
- [Run Normal Sync on the Tenant](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/write-the-integration-in-typescript/run-normal-sync-on-the-tenant.md): Trigger and verify a normal sync for your Pandium tenant to send Slack “Pokémon of the Day” messages and confirm stdout-based state is passed between successive runs.
- [Update the Tenant Schedule](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-1/update-the-tenant-schedule.md): Schedule your “Pokémon of the Day” Pandium tenant to run once per day so it automatically sends daily Slack messages to the configured trainer IDs without manual syncs.
- [Pokémon of the Day, Part 2](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-2.md): Enhance your “Pokémon of the Day” Pandium integration so each tenant picks a trainer and preferred Pokémon type via dynamic configs powered by Slack users and live PokéAPI data.
- [Update the PANDIUM.yaml](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-2/update-the-pandium.yaml.md): Update the PANDIUM.yaml for “Pokémon of the Day” to add dynamic pokemon\_type and slack\_user configs using schema definitions and UISchema so tenants can customize messages.
- [Check the Updated Connection Settings Page](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-2/check-the-updated-connection-settings-page.md): Preview your updated Pandium connection settings by building a new release, updating the tenant on the Latest channel, and confirming the new dynamic configs appear with placeholders.
- [Add Dynamic Configs](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-2/add-dynamic-configs.md): Power dynamic configs for “Pokémon of the Day” by adding an initSync flow that outputs Slack user and Pokémon type options to stdout, populating tenant dropdowns automatically.
- [Run Init Sync on the Tenant](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-2/run-init-sync-on-the-tenant.md): Run an init sync on your Pandium tenant to replace placeholder options with live Slack users and Pokémon types, then save settings and trigger a normal sync to test messages.
- [Update the pokemonSync flow](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-2/update-the-pokemonsync-flow.md): Update the pokemonSync flow so each tenant’s daily Slack message uses the selected Pokémon type and Slack user from dynamic configs, while still advancing IDs via saved stdout state.
- [Run updated Normal Sync on the Tenant](/getting-started/pandium-integration-tutorial/pokemon-of-the-day-part-2/run-updated-normal-sync-on-the-tenant.md): Test your updated normal sync by running the tenant so it sends a Slack “Pokémon of the Day” message to the configured user, filtered by the Pokémon type set in Connection Settings.
- [Pandium Integration Development Kit (IDK)](/getting-started/pandium-integration-development-kit-idk.md): Pandium’s Integration Development Kit (IDK) auto-generates flexible, production-ready integrations with project scaffolding, API clients, a local CLI, and an AI-powered integration generator.
- [Pandium Clients](/getting-started/pandium-integration-development-kit-idk/pandium-clients.md): Get out-of-the-box Pandium API clients that handle pagination, retries, rate limiting, and IDE hints so you can quickly build B2B SaaS integrations without custom plumbing.
- [Integration Code Generator: AI Powered](/getting-started/pandium-integration-development-kit-idk/integration-code-generator-ai-powered.md): Generate integrations in minutes with Pandium’s AI-powered code generator, which scaffolds flows, PANDIUM.yaml configs, and API client usage from your selected objects.
- [Pandium CLI](/getting-started/pandium-integration-development-kit-idk/pandium-cli.md): This is a command-line interface that allows developers using Pandium to build, test, and manage integrations directly from their command line while leveraging Pandium’s infrastructure.
