Skip to content

Commit

Permalink
Release 1.5.5
Browse files Browse the repository at this point in the history
  • Loading branch information
virtualgill committed Jun 5, 2023
1 parent 69b22ae commit dfc6a84
Show file tree
Hide file tree
Showing 31 changed files with 6,697 additions and 23 deletions.
7 changes: 1 addition & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [powershell/Search-ContactFlows/] Downloads and searches Amazon Connect contact flows for a specified String
### Changed
- [go/go.mod] Dependency Updates
## [1.5.3] - 2023-01-25
### Changed
- [javascript/programmatically-create-task-example] Updating dependencies to address [CVE-1321](https://cwe.mitre.org/data/definitions/1321.html)
## [1.5.2] - 2023-01-25
### Changed
- [tools/CCPLogParser] Updating dependencies to address [CVE-1321](https://cwe.mitre.org/data/definitions/1321.html)

## [1.5.3] - 2023-01-25
### Changed
- [javascript/programmatically-create-task-example] Updating dependencies to address [CVE-1321](https://cwe.mitre.org/data/definitions/1321.html)
Expand Down
35 changes: 18 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,29 +28,30 @@ Feel free to add more languages. Please follow the requirements in each subdirec
| Restrict Deskphone in CCP | Enforce deskphone settings with javascript in the CCP | [Javascript](javascript/restrict-deskphone-in-ccp) |
| Remote Control Center | Centrally manage prompts and routing configurations in DynamoDB | [Python](python/remote-control-center) |
| Contact Flow Helper | A single AWS Lambda function which provides a set of basic math and text tools to help manipulate data in contact flows | [Python](python/contactflowhelper)|
| Create Tasks Programmatically | CloudFormation template to enable you to programmatically create an Amazon Connect Task | [Javascript](javascript/programmatically-create-task-example)
| Create Tasks Programmatically | CloudFormation template to enable you to programmatically create an Amazon Connect Task | [Javascript](javascript/programmatically-create-task-example) |
| Amazon Connect Reg-Ex Patterns | For use in Cloudformation templates | [Tools](tools/)|
| Amazon Connect Draw.io Objects | Contact flow blocks that can be imported into Draw.io | [Tools](tools/)|
| Check Time Left | This snippet helps make a routing decision whether to add a new contact to the queue or take another action (like terminating the call) based on the queue length and the business hours for that day. | [Python](python/CheckTimeLeft/) |

## Projects

| Name | Description | Links |
| ---- | ----------- | ----- |
| Context Routing | Uses CTR processing, Lambda, and DynamoDB to track IVR task completion and return callers to incomplete tasks | [CloudFormation](projects/ContextRouting) |
| SCV-CrossAccountSMS | Uses Lambda and cross account permissions to allow Salesforce Service Cloud Voice provisioned Amazon Connect instances to utilize SNS to send SMS messages. | [CloudFormation](projects/SCV-CrossAccountSMS) |
| CallerHistory | The caller history project utilizes AWS Lambda and Amazon DynamoDB to record if an individual has contacted previously though a user defined identifier and records time of last contact. | [CloudFormation](projects/CallerHistory) |
| CrossRegionCrossAccount | This project shows how to call an AWS Lambda function that exists in a separate account or a separate region using AWS Lambda permissions. | [CloudFormation](projects/CrossRegionCrossAccount) |
| GetSetDataByID | This project expands on the CallerHistory project by implementing additional functionality to get, put, and update items in Amazon DynamoDB. | [CloudFormation](projects/GetSetDataByID) |
| LastAgentRouting | This project shows how to potentially implement last agent routing for customers using a voice channel.| [CloudFormation](projects/LastAgentRouting) |
| RoutingFeatureRouting | This project shows how to capture a routing feature and use that to dynamically route a caller in a contact flow.| [CloudFormation](projects/RoutingFeatureRouting) |
| LambdaAlias | This project shows how to provide access to an AWS Lambda function Alias from Amazon Connect.| [CloudFormation](projects/LambdaAlias) |
| ContextRouting | This project demonstrates how you can use contact trace record processing, Lambda, and DynamoDB to track a callers progress through an IVR task, such as making a payment, and return them to that task should they be disconnected.| [CloudFormation](projects/ContextRouting) |
| Rate Limiter | The rate limiter project utilizes AWS Lambda and Amazon DynamoDB dynamically to add rate limiting a caller to a Amazon Connect queue based on their phone number and/or IP address.| [CloudFormation](projects/RateLimiter) |
| CCP Log Parser| A visualisation tool to visualise CCP logs to help troubleshoot client side errors | [link](tools/CCPLogParser) |
| Connectivity Test Tool | This tool checks which web browser the agent is running, the network configuration from the client side and whether the microphone has required permissions. | [link](tools/CCPConnectivityTestTools) |
| Dynamic Contact Center | This project demonstrates how you can use persistent session attributes to develop modular, repeatable and dynamic contact flows | [CloudFormation](projects/DynamicContactCenter)
| Connect Cloudwatch Dashboard | This project automates the creation and deployment of a Cloudwatch Dashboard to monitor critical metrics for an Amazon Connect instance | [link](tools/ConnectCloudwatchDashboard/README.md)
| Name | Description | Links |
|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ----- |
| Context Routing | Uses CTR processing, Lambda, and DynamoDB to track IVR task completion and return callers to incomplete tasks | [CloudFormation](projects/ContextRouting) |
| SCV-CrossAccountSMS | Uses Lambda and cross account permissions to allow Salesforce Service Cloud Voice provisioned Amazon Connect instances to utilize SNS to send SMS messages. | [CloudFormation](projects/SCV-CrossAccountSMS) |
| CallerHistory | The caller history project utilizes AWS Lambda and Amazon DynamoDB to record if an individual has contacted previously though a user defined identifier and records time of last contact. | [CloudFormation](projects/CallerHistory) |
| CrossRegionCrossAccount | This project shows how to call an AWS Lambda function that exists in a separate account or a separate region using AWS Lambda permissions. | [CloudFormation](projects/CrossRegionCrossAccount) |
| GetSetDataByID | This project expands on the CallerHistory project by implementing additional functionality to get, put, and update items in Amazon DynamoDB. | [CloudFormation](projects/GetSetDataByID) |
| LastAgentRouting | This project shows how to potentially implement last agent routing for customers using a voice channel. | [CloudFormation](projects/LastAgentRouting) |
| RoutingFeatureRouting | This project shows how to capture a routing feature and use that to dynamically route a caller in a contact flow. | [CloudFormation](projects/RoutingFeatureRouting) |
| LambdaAlias | This project shows how to provide access to an AWS Lambda function Alias from Amazon Connect. | [CloudFormation](projects/LambdaAlias) |
| ContextRouting | This project demonstrates how you can use contact trace record processing, Lambda, and DynamoDB to track a callers progress through an IVR task, such as making a payment, and return them to that task should they be disconnected. | [CloudFormation](projects/ContextRouting) |
| Rate Limiter | The rate limiter project utilizes AWS Lambda and Amazon DynamoDB dynamically to add rate limiting a caller to a Amazon Connect queue based on their phone number and/or IP address. | [CloudFormation](projects/RateLimiter) |
| CCP Log Parser | A visualisation tool to visualise CCP logs to help troubleshoot client side errors | [link](tools/CCPLogParser) |
| Connectivity Test Tool | This tool checks which web browser the agent is running, the network configuration from the client side and whether the microphone has required permissions. | [link](tools/CCPConnectivityTestTools) |
| Dynamic Contact Center | This project demonstrates how you can use persistent session attributes to develop modular, repeatable and dynamic contact flows | [CloudFormation](projects/DynamicContactCenter) |
| Connect Cloudwatch Dashboard | This project automates the creation and deployment of a Cloudwatch Dashboard to monitor critical metrics for an Amazon Connect instance | [link](tools/ConnectCloudwatchDashboard/README.md) |
| Lex v2 Lambda integration example | This folder contains examples of AWS Lambda functions for use with Amazon Lex v2 code hooks. | [link](projects/AmazonLexv2LambdaIntegrationExamples/README.md) |


## Contributions
Expand Down
20 changes: 20 additions & 0 deletions projects/AmazonLexv2LambdaIntegrationExamples/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

# dependencies
/node_modules/

# build
/cdk.out/

# ide
/.vscode
.vscode
/.idea/

# ignore files compiled from ts files - this assumes that ALL js files in these dirs were generated from ts
*.d.ts
/src/**/*.js
/cdkStacks/**/*.js
/bin/*.js

# General
.DS_Store
67 changes: 67 additions & 0 deletions projects/AmazonLexv2LambdaIntegrationExamples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Amazon Lex V2 Lambda Integration Examples

## Introduction

This folder contains examples of AWS Lambda functions for use with Amazon Lex v2 code hooks.


## Prerequisites

- AWS Account
- [AWS IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) with Administrator permissions
- [Node](https://nodejs.org/) (v18)
- [NPM](https://docs.npmjs.com/cli/v9/configuring-npm/install) (v9)
- [AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
- [AWS CDK v2](https://docs.aws.amazon.com/cdk/v2/guide/cli.html)

## Set-up
```commandline
cd projects/AmazonLexv2LambdaIntegrationExamples
```
```commandline
npm install
npm run build
```

If you have started with a new environment, please bootstrap CDK
```commandline
npm run cdk:bootstrap
```



## Deploying

To deploy **all** examples
```commandline
npm run cdk:deploy:all
```

To deploy individual examples, use the specific instructions below:

#### Basic pass-through lambda
If you are just looking to get a basic template, or to do some experimenting and learning, this lambda will give you a place to start.

See [README](src/basicPassthroughLexv2Lambda/README.md) for detailed information.

```commandline
npm run cdk:deploy:basiclambda
```

#### Reminder Lex bot and Lambda function
This bot shows a simple non-functional example of a Reminder bot showing example Lambda function integrations and conditional flows.
It deploys both the Lex bot and the Lambda function and connects the Lambda function to the bot as part of deploy.

See [README](src/reminderBotLex2Lambda/README.md) for detailed information.

```commandline
npm run cdk:deploy:reminderbot
```


### Clean-up
To remove **all** resources created as part of all stacks run the below:
```commandline
npm run cdk:destroy:all
```
See individual READMEs for specific instructions to just remove individual Stacks.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env node
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: MIT-0

import "source-map-support/register"
import * as cdk from "aws-cdk-lib"
import { AwsSolutionsChecks } from "cdk-nag"
import { Aspects } from "aws-cdk-lib"

import { BasicPassthroughLambdaCdkStack } from "../cdkStacks/basic-passthrough-lambda-stack"
import { ReminderBotStack } from "../cdkStacks/reminder-bot-stack"

const app = new cdk.App()
Aspects.of(app).add(new AwsSolutionsChecks({ verbose: true }))

new BasicPassthroughLambdaCdkStack(app, "BasicLexLambdaIntegration", {})
new ReminderBotStack(app, "ReminderBot", {})
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"metaData": {
"fileFormat": "LexJson",
"resourceType": "BOT",
"schemaVersion": "1"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "ReminderBot",
"version": "DRAFT",
"description": "Example reminder bot to demonstrate different lambda integration options.",
"identifier": "",
"dataPrivacy": {
"childDirected": false
},
"idleSessionTTLInSeconds": 300
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "English (US)",
"identifier": "en_US",
"version": null,
"description": null,
"voiceSettings": {
"engine": "neural",
"voiceId": "Ivy"
},
"nluConfidenceThreshold": 0.4
}
Loading

0 comments on commit dfc6a84

Please sign in to comment.