Skip to main content
InProd Logo
Genesys Cloud CI/CD Pipeline with CircleCI and InProd

Genesys Cloud CI/CD Pipeline with CircleCI and InProd

Jarrod Neven··
Genesys CloudCircleCICI/CDDevOps

A Genesys Cloud CI/CD pipeline with CircleCI uses CircleCI workflows to validate, approve, and deploy InProd changesets across Development, UAT, and Production. CircleCI provides the YAML workflow, branch filters, contexts, approval jobs, artifacts, and scheduled pipelines. InProd provides the Genesys Cloud-specific deployment controls: changeset validation, environment targeting, execution status, configuration audit history, drift visibility, and rollback.

This article targets a narrow but valuable search pattern: Genesys Cloud CI/CD with CircleCI, CircleCI Genesys Cloud automation, InProd changesets CircleCI, and Genesys Cloud configuration as code. The search volume is small, but the intent is strong. A person searching for this topic is usually not researching generic DevOps. They are trying to make contact center configuration changes move through a real pipeline without losing governance.

The official InProd CircleCI guide runs @inprod.io/run-changesets from .circleci/config.yml. The best content angle is to show how CircleCI should orchestrate the workflow while InProd handles the Genesys Cloud deployment logic.

Genesys Cloud CI/CD Pipeline with CircleCI

CircleCI is well suited to teams that want hosted CI/CD, reusable commands, branch filters, approval jobs, contexts for shared secrets, and scheduled validation. CircleCI's deployment documentation focuses on using pipelines and workflows to manage deployments; for Genesys Cloud, the deployment target is not an application server. It is the configuration layer that controls contact center behavior.

In a production-grade CircleCI workflow:

  1. Changesets are stored in a Git repository.
  2. Pull requests run validate-only checks against the target environment.
  3. Merges to main deploy to Development.
  4. A CircleCI approval job gates UAT.
  5. A second approval job gates Production.
  6. InProd validates before execution at each stage.
  7. CircleCI stores inprod-result.json and inprod-results.env as artifacts.
  8. Scheduled workflows run validation to detect drift before the next release.

The pipeline should not be a one-step deploy button. It should be a release path that proves what will change before the change reaches live customer routing.

Why CircleCI Needs a Genesys-Aware Deployment Layer

CircleCI can run commands, store artifacts, share workspaces, use contexts, and pause workflows for approval. It cannot tell whether a Genesys Cloud queue dependency exists, whether a routing change is safe, or whether an emergency Admin UI update has created drift.

That is where InProd changesets fit.

CircleCI capability InProd capability
Workflows, jobs, filters, and approval gates Genesys Cloud changeset validation and execution
Contexts and project environment variables API authentication and environment targeting
store_artifacts and workspaces Deployment result files and execution evidence
Scheduled workflows Recurring validation and drift checks
YAML reuse through commands Repeatable configuration deployment patterns

The result is a CircleCI workflow that still feels natural to engineering teams, but does not treat Genesys Cloud configuration like a generic shell script.

CircleCI Prerequisites

Add these as CircleCI project environment variables or as an organization Context:

Variable Purpose
INPROD_API_KEY Authenticates to InProd
INPROD_BASE_URL Base URL for your InProd instance

Use a Context when several repositories need the same InProd credentials. Keep Production credentials separate from Development credentials where possible, and use CircleCI restrictions to control which projects and jobs can access them.

Your repository also needs one or more InProd changeset files. YAML and JSON are supported by the runner, and glob patterns such as changesets/*.yaml are useful when a release is made of multiple ordered changes.

Use a structure that makes review and promotion obvious:

.circleci/
  config.yml
changesets/
  dev/
  uat/
  production/
  shared/
    01_queues.yaml
    02_skills.yaml
rollback/
  rollback-routing.yaml

Some teams prefer one shared changesets/ folder with environment selected by INPROD_ENVIRONMENT. Others keep environment-specific changesets separate. The SEO and operating recommendation is to promote the same artifact wherever possible, and use environment targeting or runtime variables for differences that truly must vary.

Minimal CircleCI Job

A simple CircleCI job can deploy a changeset to Production:

version: 2.1

jobs:
  deploy-changesets:
    docker:
      - image: cimg/node:18.20
    steps:
      - checkout
      - run:
          name: Run InProd Changesets
          command: npx --yes @inprod.io/run-changesets
          environment:
            INPROD_CHANGESET_FILE: changesets/queues.yaml
            INPROD_ENVIRONMENT: Production
      - store_artifacts:
          path: inprod-result.json
          destination: inprod-result

workflows:
  deploy:
    jobs:
      - deploy-changesets:
          filters:
            branches:
              only: main

This is useful for a quick start, but the enterprise value comes from adding validate-only checks, approval gates, artifacts, and scheduled validation.

Reusable CircleCI Command for InProd

The official InProd guide shows a reusable command pattern. That is the right direction because every Genesys Cloud deployment job should use the same defaults.

version: 2.1

commands:
  run_inprod_changesets:
    parameters:
      changeset_file:
        type: string
      environment:
        type: string
        default: ""
      validate_only:
        type: boolean
        default: false
      execution_strategy:
        type: string
        default: validate_first
    steps:
      - run:
          name: Run InProd Changesets
          command: npx --yes @inprod.io/run-changesets
          environment:
            INPROD_CHANGESET_FILE: << parameters.changeset_file >>
            INPROD_ENVIRONMENT: << parameters.environment >>
            INPROD_VALIDATE_ONLY: << parameters.validate_only >>
            INPROD_EXECUTION_STRATEGY: << parameters.execution_strategy >>
      - store_artifacts:
          path: inprod-result.json
          destination: inprod-result

With this command, the rest of the config can focus on the release path instead of repeating command wiring.

Multi-Environment CircleCI Workflow

For Genesys Cloud DevOps automation, the strongest workflow is validate, deploy Development, approve UAT, deploy UAT, approve Production, deploy Production.

version: 2.1

jobs:
  validate:
    docker:
      - image: cimg/node:18.20
    steps:
      - checkout
      - run_inprod_changesets:
          changeset_file: changesets/*.yaml
          validate_only: true

  deploy-dev:
    docker:
      - image: cimg/node:18.20
    steps:
      - checkout
      - run_inprod_changesets:
          changeset_file: changesets/*.yaml
          environment: Development

  deploy-uat:
    docker:
      - image: cimg/node:18.20
    steps:
      - checkout
      - run_inprod_changesets:
          changeset_file: changesets/*.yaml
          environment: UAT

  deploy-prod:
    docker:
      - image: cimg/node:18.20
    steps:
      - checkout
      - run_inprod_changesets:
          changeset_file: changesets/*.yaml
          environment: Production

workflows:
  deploy-genesys-cloud:
    jobs:
      - validate
      - deploy-dev:
          requires: [validate]
          filters:
            branches:
              only: main
      - hold-uat:
          type: approval
          requires: [deploy-dev]
      - deploy-uat:
          requires: [hold-uat]
      - hold-prod:
          type: approval
          requires: [deploy-uat]
      - deploy-prod:
          requires: [hold-prod]

This pattern makes CircleCI the visible release control plane while preserving InProd as the system that understands changesets, validation, and Genesys Cloud environments.

Pull Request Validation

Pull requests should validate without executing:

version: 2.1

jobs:
  validate-changesets:
    docker:
      - image: cimg/node:18.20
    steps:
      - checkout
      - run:
          name: Validate InProd Changesets
          command: npx --yes @inprod.io/run-changesets
          environment:
            INPROD_CHANGESET_FILE: changesets/*.yaml
            INPROD_VALIDATE_ONLY: "true"
      - store_artifacts:
          path: inprod-result.json
          destination: inprod-result

workflows:
  validate-pr:
    jobs:
      - validate-changesets:
          filters:
            branches:
              ignore: main

This job answers the first production-readiness question: does the proposed configuration change validate before it can be merged?

Artifacts, Workspaces, and Status

The InProd runner creates two files:

File Purpose
inprod-results.env Aggregate status such as SUCCESS, FAILURE, TIMEOUT, REVOKED, or SUBMITTED
inprod-result.json Per-file execution detail for review, notification, and audit

Use store_artifacts so release evidence is available in CircleCI. Use persist_to_workspace and attach_workspace when a downstream notification job needs to read INPROD_STATUS:

- persist_to_workspace:
    root: .
    paths:
      - inprod-results.env
      - inprod-result.json

Status handling matters for contact center releases. A failed queue or routing deployment should not disappear into a generic job log. It should notify the release owner, link to the change ticket, and preserve the InProd result artifact.

Scheduled Validation for Drift

CircleCI scheduled pipelines are valuable for Genesys Cloud because drift often happens outside normal releases. Emergency Admin UI fixes, ad hoc troubleshooting, and small operational changes can make Production differ from source control or UAT.

Use a scheduled validation job to check changesets against Production without executing them:

workflows:
  nightly-validation:
    triggers:
      - schedule:
          cron: "0 12 * * *"
          filters:
            branches:
              only: main
    jobs:
      - validate-changesets

Pair this with Genesys Cloud configuration auditing and drift-aware CI/CD governance. The goal is to find environment mismatch before a release depends on a false assumption.

Production Readiness Checklist

  • Store InProd credentials in CircleCI project variables or Contexts.
  • Use validate-only mode for pull request workflows.
  • Use approval jobs before UAT and Production.
  • Promote the same changeset files across environments.
  • Set INPROD_EXECUTION_STRATEGY to validate_first for multi-file releases.
  • Store inprod-result.json as an artifact.
  • Persist inprod-results.env when downstream jobs need status.
  • Run scheduled validation to expose drift.
  • Keep rollback changesets in the repository.
  • Link CircleCI workflow history to InProd audit records and change tickets.

FAQ

Can CircleCI deploy Genesys Cloud changes?

Yes. CircleCI can run @inprod.io/run-changesets to validate and execute InProd changesets against Genesys Cloud environments.

What is the target keyword for this article?

The primary keyword is Genesys Cloud CI/CD pipeline with CircleCI. Secondary phrases include CircleCI Genesys Cloud, InProd changesets CircleCI, Genesys Cloud DevOps automation, and Genesys Cloud configuration as code.

Should CircleCI validate pull requests?

Yes. Use INPROD_VALIDATE_ONLY=true so pull requests validate changesets without modifying Genesys Cloud configuration.

Can CircleCI require approval before Production?

Yes. Use CircleCI approval jobs in the workflow before UAT and Production deployment jobs.

How does this relate to CX as Code?

InProd and CircleCI can work alongside Genesys Cloud CX as Code. The article's focus is governed changeset deployment: validation, promotion, audit, drift detection, and rollback.

Use the InProd CircleCI integration guide, the CircleCI deployment documentation, and InProd's guides to Genesys Cloud CI/CD with CX as Code and Terraform and Genesys Cloud DevOps automation. To review how CircleCI should fit your contact center release process, book a call.

Jarrod Neven

Jarrod Neven

Contact Center Expert, Director at InProd Solutions

Jarrod has been working in the enterprise CX space since 2001. Before starting InProd, he spent several years as a CTI Solutions Architect at Genesys itself, working across the APAC region with enterprise and government customers — which gives him a different perspective on how their platforms actually work under the hood. He's been Director at InProd Solutions since 2016, helping organizations cut through the complexity of Genesys Engage deployments.