Skip to main content
Version: Next — unreleased

Configure team recording storage

The recording destination belongs to the team and is shared by its apps. Each app separately chooses which outputs to retain.

Availability: Use a Team Admin account to save the Team settings form. The form submits administrative settings as well as storage fields; a Member seeing editable storage fields does not establish permission to save the whole form. AWS bucket and role administration requires separate access outside Delphi.

Prepare the destination​

Ask your storage operator for the bucket name, AWS region and, if the deployment assumes a role, the recording role ARN. Confirm that the bucket already exists and that the platform's runtime identity can access it. Saving these fields does not create a bucket or IAM role.

Before changing an existing destination, plan access to earlier recordings. Changing the bucket or role does not migrate objects. Playback and deletion use the team's currently configured bucket, so an unplanned switch can leave earlier objects outside the normal UI lookup.

Save and verify​

  1. Open Settings → Team → Call recording for the intended team.
  2. Enter the S3 bucket, AWS region, and the recording IAM role ARN supplied for this deployment, when an assumed role is used.
  3. Save the form. If it is rejected, confirm team-administration permission and the team's account/subscription state before changing credentials.
  4. Ask an app author to publish a deliberate recording selection and make an approved test call. Have the operator verify the resulting objects and, if audio was selected, playback after processing.
  5. Reload Settings → Team → Call recording and confirm the saved bucket, region and role ARN appear.
  6. Verify the actual bucket lifecycle separately; a successful form save is not evidence of retention enforcement.

Retention behavior​

When an update includes a nonempty recording bucket, Delphi attempts to install an enabled lifecycle rule named delphi-recordings-ttl, for the recordings/ prefix, with a 180-day expiration. It retains rules with other IDs and replaces an existing rule with that ID. A later Team settings save can therefore replace a custom rule using that same ID.

The lifecycle update can fail while the Team settings save succeeds. The operator should inspect the actual rule, status, prefix and expiration, and the lifecycle configuration error if present. Coordinate a different retention requirement with the operator; the Team settings form does not provide a custom retention-period control.

For missing objects, failures after changing the destination, or retention that differs from the expected rule, use recording diagnostics. Use the recording output reference for common file and JSON fields; integration-specific metadata has a separate contract.