LogoLogo
  • Getting Started
    • Pandium Documentation
    • What is Pandium?
      • The Pandium Platform
      • What Companies Use Pandium For
      • Platform Structure
      • Users of Pandium
    • Anatomy of an Integration
      • Run Triggers
      • PANDIUM.yaml
        • Schema
        • UiSchema
        • Dynamic Configurations
        • Dependent Selector Configurations
      • Environment Variables
        • Context: StdOut
        • Logging (StdErr)
    • Key Terminology
    • Pandium Integration Tutorial
      • Pokémon of the Day, Part 1
        • Create App in Slack to get Credentials
        • Create Integration on the Pandium Integration Hub
        • Make a Tenant
        • Write the Integration in Typescript
          • Add the .env
          • Configure the PANDIUM.yaml
          • Check the Customized Connection Settings Page
          • Add the Pokémon client
          • Add the Slack Client
          • Add the pokemonSync flow
          • Run Normal Sync on the Tenant
        • Update the Tenant Schedule
      • Pokémon of the Day, Part 2
        • Update the PANDIUM.yaml
        • Check the Updated Connection Settings Page
        • Add Dynamic Configs
        • Run Init Sync on the Tenant
        • Update the pokemonSync flow
        • Run updated Normal Sync on the Tenant
  • Integration Hub
    • Setting Up Source Control
    • Creating An Integration
      • Getting Started with Creating an Integration
      • Demo Video: Creating an Integration With Pandium
    • Managing Internal Integrations
    • Creating a Tenant In the Integration Hub
    • Managing and Updating Tenants
    • Managing and Updating Releases
    • Managing External Integrations
    • Managing Tenant Connection Settings
    • Creating Users
    • Managing Users
    • Administrator Settings
    • Site Metrics
  • Marketplaces
    • Integration Onboarding Experiences Overview
      • Embedding the In-App Marketplace
      • Embedding the Integration Install Only
      • Embedding Auth-Only Connections
    • Customizing the JWT
    • Marketplace Settings
    • App Installation Options
    • Flags, Tags, and Categories
    • Public Gallery
  • Connectors
    • Connectors 101
      • Active Campaign
      • Afterpay
      • AfterShip
      • Airship
      • Alasco
      • Algolia
      • Amadeus
      • Amazon
      • Ankored
      • Apollo.io
      • AppSignal
      • AskNicely
      • Assembled
      • Attentive
      • AWS
      • Azure Devops
      • Azure Personal Access Token
      • Bandcamp
      • Bazaarvoice
      • BigCommerce
      • Bitbucket
      • Booker
      • Box
      • Braze
      • Brightpearl
      • Campaign Monitor
      • Capabl
      • Chargebee
      • Chargify
      • Chubb
      • Cin7
      • Coach Packet
      • ConnectSports
      • Constant Contact
      • Customer Thermometer
      • Datadog
      • Datev
      • Delighted
      • DHL
      • DHL Unified
      • Domo
      • Dotdigital
      • Drip
      • Dropbox
      • Dynamic Yield
      • Easyship
      • Eloqua
      • Emotive
      • Endear
      • Envision
      • eTip
      • EvaluAgent
      • Exact Online
      • eZCom
      • Fabric
      • Facebook
      • Falcon.io
      • Famer
      • Fedex
      • Field Nation
      • Finch
      • Fivetran
      • Fleetio
      • Flowcode
      • Follow Up Boss
      • Fortnox
      • Foundation Software
      • Fulfil
      • GetResponse
      • GitHub
      • GitLab
      • Gladly
      • Google
      • Google Service Account
      • Gooten
      • Gorgias
      • Greenhouse.io
      • Happy Returns
      • HootSuite
      • Hubspot
      • Image Relay (Basic)
      • Imgur
      • Iterable
      • Jasper
      • JDP
      • Justuno
      • Kentico Kontent
      • Klaus
      • Klaviyo
      • Kombo
      • Kustomer
      • kvCORE
      • LeagueApps
      • Lessonly
      • Lexoffice
      • Linga rOS
      • Linnworks
      • Listrak
      • Loop Returns
      • LoyaltyLion
      • Lucid Travel
      • Lytx
      • MaestroQA
      • Magento (OAuth)
      • Mailchimp
      • Marketo
      • Medallia
      • Microsoft Entra
      • Mintsoft
      • NCSA Athletic Recruiting
      • Netomi
      • Netsuite
      • Nicereply
      • Nylas
      • Omnisend
      • OnPay
      • OnRamp
      • Ontraport
      • Optimizely Data Platform (ODP)
      • Pandium
      • Personio
      • PayCom
      • Perspective
      • Player's Health
      • Playvox
      • Pleo
      • Postscript
      • Promoter
      • Quickbooks Online
      • Qualtrics
      • Recart
      • ReCharge
      • Recurly
      • Returnly
      • ReverseLogix
      • Rydership (formerly Whiplash)
      • Sage Intacct
      • SailThru
      • Salesforce
      • Salesforce Marketing Cloud
      • Salesforce Pardot
      • SendGrid
      • Sendlane
      • SevenRooms
      • SFTP
      • ShipBob
      • ShipHero
      • ShipMonk
      • Shippo
      • Shipstation
      • Shopify
      • Skubana
      • Slack (OAuth2)
      • SmartrMail
      • Smartrr
      • Smartvatten
      • Smile.io
      • Solidus
      • Springbig
      • Square
      • Square (Sandbox)
      • Stamped
      • Stella Connect
      • SugarCRM
      • Swell
      • Talkable
      • TeamGenius
      • Tether
      • Thankful
      • TikTok
      • Trinet-B2B Test
      • Triple Whale
      • TrustPilot
      • Twilio
      • Twitter
      • Unbabel
      • UPS
      • Upscribe
      • USPS
      • Visma e-conomic
      • Visma.net
      • Walmart
      • Wix
      • WorkMax
      • Xero (OAuth)
      • Yardstik
      • Yotpo
      • Zendesk (Support)
      • Zingtree
      • Zonos
  • Partners
    • Inviting Partners
    • Partner Form
    • Integration Form
    • Managing Partners
    • Partner User Guide
  • Reference
    • Pandium API
    • Pandium CLI
    • FAQ
    • Sample Integrations
    • Repository Permissions
      • Bitbucket
      • Azure
      • GitLab
      • GitHub
    • Email Support
Powered by GitBook
On this page

Was this helpful?

  1. Getting Started
  2. Pandium Integration Tutorial
  3. Pokémon of the Day, Part 2

Update the PANDIUM.yaml

This is where you will start to set up the functionality that allows a user to choose which type of Pokémon they will learn about and who will receive the daily Slack message.

Last updated 1 year ago

Was this helpful?

One of the 's key purposes is to populate the Connections Settings page. That page allows users to customize how their will run.

At the moment the PANDIUM.yaml in your Pokémon of the Day integration does not have any configurations, but the Academy has asked for these dynamic configs to be added: pokemon_type and slack_user

  1. Add configs with its schema and uischema to your PANDIUM.yaml, so it looks like this:

version: 0.4
base: node:20.9.0
build: npm install --production && npm i --save-dev @types/node && npm run build
run: node .
configs:
  schema:
    required:
    definitions:
    properties:
  uischema:
    elements:
  1. Under schema properties add the following:

      pokemon_type:
        type: string
        $ref: '#/definitions/pokemon_types'
      slack_user:
        type: string
        $ref: '#/definitions/slack_users'

The values in the $ref for each of these properties determine the options for that config. E.g. the pokemon_type config will have a dropdown menu on the Connections Settings page, and it will be filled with whatever is in #/definitions/pokemon_types.

So let's add the definitions for pokemon_types and slack_users!

  1. Make the schema definitions look like this:

    definitions:
      slack_users:
        type: number
        oneOf:
          - title: Placeholder
            const: placeholder
      pokemon_types:
        enum:
            - placeholder  

When you built the first iteration of the integration you saw that Pandium saves the standard out of a successful normal sync and passes it to the next run through context. Pandium also stores the standard out of a successful init sync.

When you add the init sync flow you will end it by printing a standard out which will look something like this:

{
   "pokemon_types":[
      {"const":"1","title":"normal"},
      {"const":"2","title":"fighting"},
      ... other pokemon types fetched from the PokéAPI
   ],
   "slack_users":[
      {"const":"UCEGPFQRX","title":"Jeff"},
      {"const":"UCEMD4QCQ","title":"Juanita"},
      ... other Slack users fetched from your Slack workspace.
   ]
}

Pandium will save that init sync's standard out and read it when displaying the Connections Settings page. It will replace each placeholder with the content of the lists from your init sync's standard out.

  1. Under schema required add pokemon_type and slack_user.

  2. Add this Section element to the uischema elements:


    - type: Section
      label: Configure Pokémon of the Day
      hintText: Select which type of Pokémon you would like to learn about, and the Slack User who will receive the Pokémon of the day message.
      elements:

      - label: Pokémon Type
        scope: '#/properties/pokemon_type'
        type: Control

      - label: Slack User
        scope: '#/properties/slack_user'
        type: Control

Let's take a look at how the connection settings page looks with this updated PANDIUM.yaml!

You can read more about dynamic configs .

Your PANDIUM.yaml should now look like the one .

here
here
PANDIUM.yaml
tenant