> ## Documentation Index
> Fetch the complete documentation index at: https://docs.operata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Install the Cloud Orchestrator

> Deploy the Cloud Orchestrator CloudFormation stack into your AWS account so the ECS Fargate service starts and Heartbeat checks can run.

Deploy the Cloud Orchestrator (Operata's Amazon ECS Fargate service for synthetic
testing and recording analysis) into your AWS account — when the stack reaches
`CREATE_COMPLETE` and the ECS service shows **Running tasks: 1/1**, you're ready
to drive Heartbeat checks.

## Before you start

* An Amazon Connect instance in the AWS region you intend to deploy
  into. Cloud Orchestrator must live in the same region as Amazon
  Connect.
* An [Operata account](/docs/get-started-overview) with Admin role and
  your Operata Group ID.
* The Cloud Orchestrator CloudFormation template URL. Operata supplies
  one of two templates: a **new-VPC** template that creates a dedicated
  VPC, or an **existing-VPC** template that deploys into a VPC you
  already operate. Contact [Operata Support](mailto:support@operata.com)
  for the link.
* AWS [IAM permissions](/docs/iam-policies) to create CloudFormation
  stacks, IAM roles, ECS clusters, VPC networking, and Secrets Manager
  secrets.
* The [Cloud Orchestrator concept](/docs/concepts-cloud-orchestrator)
  read end to end — this page is the deployment runbook for the
  service that page describes.
* If your call recordings use a customer-managed KMS key, plan to
  follow [KMS encryption](/docs/kms-encryption) after the stack
  deploys.

## Steps

### 1. Collect the eight required parameters

Have these values ready before you open CloudFormation. The
existing-VPC template needs two more, covered in step 2.

| Parameter                        | Where to find it                                                                                                                                                                                                                                                      |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ConnectInstanceARN`             | Amazon Connect console → **Overview**. Use the full ARN, for example `arn:aws:connect:ap-southeast-2:083560123456:instance/8f3b9a12-2b6b-4a07-8d33-c6f7b21a4ab0`.                                                                                                     |
| `ConnectRecordingsBucketName`    | Amazon Connect console → **Data Storage**. Bucket name only — for `call.recordings/connect/acme-prod`, enter `call.recordings`.                                                                                                                                       |
| `LogLevel`                       | Leave at the default `0`.                                                                                                                                                                                                                                             |
| `OperataAPIToken`                | Operata console → **Settings → Config → API**. Create a token labeled `Orchestrator` and copy the value. See the [Operata help article](https://help.operata.com/en/articles/5542797-how-do-i-create-view-change-and-revoke-api-tokens) for the full token lifecycle. |
| `OperataAPIUrl`                  | Leave at the default `https://api.operata.io`.                                                                                                                                                                                                                        |
| `OperataGroupID`                 | Provided by Operata.                                                                                                                                                                                                                                                  |
| `OperataHeartbeatRoutingProfile` | Set to `Operata_Heartbeat_RP`. You create this profile in [Set up Heartbeat](/docs/heartbeat-setup).                                                                                                                                                                  |
| `OrchestratorVersion`            | Leave at the default.                                                                                                                                                                                                                                                 |

### 2. (Existing VPC only) Collect the VPC parameters

Skip this step if you use the new-VPC template.

| Parameter   | Where to find it                                         |
| ----------- | -------------------------------------------------------- |
| `VPCID`     | The VPC ID to deploy the ECS cluster into.               |
| `SubnetIDs` | The list of VPC subnets allowed for ECS task deployment. |

The VPC must allow bi-directional media access for the Virtual Agent
to operate:

* Outbound port `3478` open on the Virtual Agent security group.
* VPC ACL inbound: UDP ports `49152`–`65535`.
* VPC ACL outbound: UDP ports `49152`–`65535` and `3478`–`65535`.

See the [AWS guide to CCP networking](https://docs.aws.amazon.com/connect/latest/adminguide/ccp-networking.html#stateless-firewalls)
for the upstream reference.

### 3. Create the CloudFormation stack

In the AWS console, open **CloudFormation** in the same region as your
Amazon Connect instance, then choose **Create stack → With new
resources (standard)**.

Select **Upload a template file** and upload the `.yml` Operata
supplied. Click **Next**.

### 4. Enter the stack parameters

Give the stack a name that includes `OperataOrchestrator` — for
example, `OperataOrchestrator-prod`. Paste the parameters you collected
in step 1 (and step 2, if you use the existing-VPC template).

<Warning>
  **Cloud Orchestrator parameters cannot be edited after stack creation.**

  If a parameter is wrong, delete the stack and create a new one. Do not
  use the change-sets feature. If you replace an existing Orchestrator,
  update the Lambda name in Amazon Connect to point at the new stack's
  Lambda — the old name no longer exists.
</Warning>

### 5. Review and create the stack

Click through **Next** on the stack-options screen. On the **Review
and create** screen, check the IAM resource-creation acknowledgement
and click **Create stack**.

The stack reaches `CREATE_COMPLETE` in around 10 minutes.

### 6. (Optional) Tag the new resources

Apply your cost-allocation and ownership tags. See [Tag your AWS
resources](/docs/aws-tagging) for the tag set Operata expects on the
deployed stack.

## Verify

Open the Cloud Orchestrator stack in the CloudFormation console, then
open the **Resources** tab and search for `log`. Click the log group
link to open CloudWatch Logs. The most recent log stream confirms the
Orchestrator service started and is polling the Operata API.

In Amazon ECS, the stack creates a Fargate cluster running one service.
The service shows **Running tasks: 1/1**.

If the stack fails to reach `CREATE_COMPLETE` or the logs show errors,
see [Troubleshoot the AWS integration](/docs/aws-troubleshooting).

## Related

* [Set up Heartbeat](/docs/heartbeat-setup) — create the routing
  profile, contact flow, and phone number that drive synthetic test
  calls.
* [Heartbeat Virtual Agent](/docs/virtual-agent) — deploy the
  containerized agent that answers Heartbeat calls.
* [Concept: Cloud Orchestrator](/docs/concepts-cloud-orchestrator) —
  the AWS-side runtime you just deployed and why it is built this way.
* [EventBridge](/docs/concepts-eventbridge) — how Heartbeat run
  results reach your downstream systems.
