Skip to content

Resource: awsConnectContactFlow

Provides an Amazon Connect Contact Flow resource. For more information see Amazon Connect: Getting Started

This resource embeds or references Contact Flows specified in Amazon Connect Contact Flow Language. For more information see Amazon Connect Flow language

!> WARN: Contact Flows exported from the Console Contact Flow import/export are not in the Amazon Connect Contact Flow Language and can not be used with this resource. Instead, the recommendation is to use the AWS CLI describeContactFlow. See example below which uses jq to extract the content attribute and saves it to a local file.

Example Usage

Basic

/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.connectContactFlow.ConnectContactFlow(this, "test", {
  content:
    '${jsonencode({\n    Version     = "2019-10-30"\n    StartAction = "12345678-1234-1234-1234-123456789012"\n    Actions = [\n      {\n        Identifier = "12345678-1234-1234-1234-123456789012"\n        Type       = "MessageParticipant"\n\n        Transitions = {\n          NextAction = "abcdef-abcd-abcd-abcd-abcdefghijkl"\n          Errors     = []\n          Conditions = []\n        }\n\n        Parameters = {\n          Text = "Thanks for calling the sample flow!"\n        }\n      },\n      {\n        Identifier  = "abcdef-abcd-abcd-abcd-abcdefghijkl"\n        Type        = "DisconnectParticipant"\n        Transitions = {}\n        Parameters  = {}\n      }\n    ]\n  })}',
  description: "Test Contact Flow Description",
  instanceId: "aaaaaaaa-bbbb-cccc-dddd-111111111111",
  name: "Test",
  tags: {
    Application: "Terraform",
    Method: "Create",
    Name: "Test Contact Flow",
  },
  type: "CONTACT_FLOW",
});

With External Content

Use the AWS CLI to extract Contact Flow Content:

$ aws connect describe-contact-flow --instance-id 1b3c5d8-1b3c-1b3c-1b3c-1b3c5d81b3c5 --contact-flow-id c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5 --region us-west-2 | jq '.ContactFlow.Content | fromjson' > contact_flow.json

Use the generated file as input:

/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.connectContactFlow.ConnectContactFlow(this, "test", {
  contentHash: '${filebase64sha256("contact_flow.json")}',
  description: "Test Contact Flow Description",
  filename: "contact_flow.json",
  instanceId: "aaaaaaaa-bbbb-cccc-dddd-111111111111",
  name: "Test",
  tags: {
    Application: "Terraform",
    Method: "Create",
    Name: "Test Contact Flow",
  },
  type: "CONTACT_FLOW",
});

Argument Reference

The following arguments are supported:

  • content - (Optional) Specifies the content of the Contact Flow, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the filename argument cannot be used.
  • contentHash - (Optional) Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with filename. The usual way to set this is filebase64sha256("mycontact_flow.json") (Terraform 0.11.12 and later) or base64sha256(file("mycontact_flow.json")) (Terraform 0.11.11 and earlier), where "mycontact_flow.json" is the local filename of the Contact Flow source.
  • description - (Optional) Specifies the description of the Contact Flow.
  • filename - (Optional) The path to the Contact Flow source within the local filesystem. Conflicts with content.
  • instanceId - (Required) Specifies the identifier of the hosting Amazon Connect Instance.
  • name - (Required) Specifies the name of the Contact Flow.
  • tags - (Optional) Tags to apply to the Contact Flow. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
  • type - (Optional, Forces new resource) Specifies the type of the Contact Flow. Defaults to CONTACT_FLOW. Allowed Values are: CONTACT_FLOW, CUSTOMER_QUEUE, CUSTOMER_HOLD, CUSTOMER_WHISPER, AGENT_HOLD, AGENT_WHISPER, OUTBOUND_WHISPER, AGENT_TRANSFER, QUEUE_TRANSFER.

Attributes Reference

In addition to all arguments above, the following attributes are exported:

  • arn - The Amazon Resource Name (ARN) of the Contact Flow.
  • id - The identifier of the hosting Amazon Connect Instance and identifier of the Contact Flow separated by a colon (:).
  • contactFlowId - The identifier of the Contact Flow.
  • tagsAll - A map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.

Import

Amazon Connect Contact Flows can be imported using the instanceId and contactFlowId separated by a colon (:), e.g.,

$ terraform import aws_connect_contact_flow.example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5