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, thefilename
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 withfilename
. 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 withcontent
.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 providerdefaultTags
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 toCONTACT_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 providerdefaultTags
configuration block.
Import
Amazon Connect Contact Flows can be imported using the instanceId
and contactFlowId
separated by a colon (:
), e.g.,