connect-blueprint
npx skills add https://github.com/ippei2480/connect-blueprint --skill connect-blueprint
Agent 安装分布
Skill 文档
connect-blueprint
Overview
2ã¤ã®ã¢ã¼ãã§ Amazon Connect ã³ã³ã¿ã¯ãããã¼ãçæããï¼
- ã¢ã¼ãAï¼ã¼ãããè¨è¨ï¼: è¦ä»¶ãã¢ãªã³ã° â Mermaidè¨è¨å³ â ããã¼JSON â ãããã¤
- ã¢ã¼ãBï¼è¨è¨å³ããçæï¼: draw.io/Mermaid/ç»å â ããã¼JSON â ãããã¤
Prerequisites
- AWS CLI + æå¹ãªãããã¡ã¤ã«ï¼
aws sts get-caller-identity --profile <profile>ã§ç¢ºèªï¼ - Connect ã¤ã³ã¹ã¿ã³ã¹IDï¼
aws connect list-instances --profile <profile>ã§åå¾å¯ï¼ - å¿
è¦IAM権é:
connect:*
Mode A: Design from Scratch
Step 1: è¦ä»¶ãã¢ãªã³ã°
以ä¸ã確èªããï¼
- é»è©±ã®ç®çã»æ¥ç¨®ã»ä¸»ãªã¦ã¼ã¹ã±ã¼ã¹
- IVR鏿è¢ï¼çªå·ã¨å¯¾å¿å 容ï¼
- å¶æ¥æéåå²ã®æç¡
- å¤é¨ã·ã¹ãã 飿ºï¼Lambda/DynamoDBçï¼
- æ¢åããã¼ã¨ã®çµ±åæç¡
- é話é²é³ã®è¦å¦ã¨é²é³å¯¾è±¡ï¼Agent / Customer / 両æ¹ï¼
- Contact Lens åæã®æå¹/ç¡å¹
- åæè¨èªï¼ja-JP, en-US çï¼
- æ©å¯æ å ±ãã¹ãã³ã°ï¼redactionï¼ã®è¦å¦
ç°å¢æ å ±ãåå¾ãã¦ã¦ã¼ã¶ã¼ã«è¦ããï¼
# ãã¥ã¼ä¸è¦§
aws connect list-queues --instance-id $INSTANCE_ID --queue-types STANDARD --profile $PROFILE
# ããã³ããä¸è¦§
aws connect list-prompts --instance-id $INSTANCE_ID --profile $PROFILE
# Lambdaä¸è¦§ï¼Connect飿ºæ¸ã¿ï¼
aws connect list-lambda-functions --instance-id $INSTANCE_ID --profile $PROFILE
# ããã¼ã¢ã¸ã¥ã¼ã«ä¸è¦§
aws connect list-contact-flow-modules --instance-id $INSTANCE_ID --profile $PROFILE
å®ç¾ä¸å¯è½ãªè¦ä»¶ãããã°ãã®æ®µéã§æç¤ºãã¦ã¦ã¼ã¶ã¼ã«ä¼ããã
Step 2: Mermaid è¨è¨å³ã®çæ
references/mermaid_notation.md ã®è¨æ³ã«å¾ã£ã¦Mermaidå³ãçæããã
ç¹°ãè¿ãå¦çï¼ãªãã©ã¤ã¡ãã¥ã¼çï¼ã¯ãã¾ã Loop ActionType ã®ä½¿ç¨ãæ¤è¨ããã
Loop ã§å®ç¾ã§ããªãå ´åã®ã¿ UpdateContactAttributes + Compare ã«ããã«ã¦ã³ã¿æ¹å¼ãæ¤è¨ããã
Mermaidå³ã¯ .md ãã¡ã¤ã«ã¨ãã¦ä¿åããï¼ä¾: <flow-name>-design.mdï¼ã
ä¿åå¾ãå¿
ãã¦ã¼ã¶ã¼ã«ã¬ãã¥ã¼ãä¾é ¼ãæ¿èªãå¾ã¦ããæ¬¡ã®ã¹ãããã¸ã
Step 3: ããã¼JSONçæ
Mermaidããããã¼æ§é ãè§£æãã¦JSONï¼Actionsé
å + Transitionsï¼ãçæããã
references/flow_json_structure.md ã®æ§é 仿§ã«å¾ãã
ããã¼ã®æåã®ã¢ã¯ã·ã§ã³ã¯å¿
ã UpdateFlowLoggingBehavior ã¨ããã
StartAction ã« UpdateFlowLoggingBehavior ã®IDãè¨å®ãããã® NextAction ãæ¬æ¥ã®ã¨ã³ããªã¼ã¢ã¯ã·ã§ã³ã«ããã
AWS MCP Parameter Validation
åActionTypeã®ãã©ã¡ã¼ã¿ãè¨å®ããéãreferences/action_types.md ã®å
±éã«ã¼ã«ã確èªããä¸ã§ãAWS MCP ã§å
¬å¼ããã¥ã¡ã³ããåç
§ãã¦ãã©ã¡ã¼ã¿ã®æ£ç¢ºæ§ãä¿è¨¼ããï¼
references/action_types.mdã® AWS Docs ãã¹å¯¾å¿ãã¼ãã«ãã該å½URLãã¹ãåå¾aws___read_documentationã§ãã©ã¡ã¼ã¿ä»æ§ã確èª- ããã¥ã¡ã³ãã«åºã¥ãã¦ãã©ã¡ã¼ã¿ãè¨å®ãã
Why: ãã¼ã«ã«ãªãã¡ã¬ã³ã¹ã¯ãã©ã¡ã¼ã¿ã®æ¦è¦ã®ã¿è¨è¼ãæ£ç¢ºãªãã£ã¼ã«ãåã»åã»å¶ç´ã¯ AWS å ¬å¼ããã¥ã¡ã³ããä¿¡é ¼ã§ããã½ã¼ã¹ã
positionä»ä¸:
python3 scripts/layout.py <flow.json>
Step 4: Validate & Deploy
IMPORTANT: Always validate before deploying. Never skip this step.
ãã¼ã«ã«ããªãã¼ã·ã§ã³ (required)
./scripts/validate.sh flow.json
If validation returns errors, fix the flow JSON and re-validate before proceeding. Only deploy after validation passes with no errors.
APIããªãã¼ã·ã§ã³ (recommended)
./scripts/validate.sh --api --instance-id $INSTANCE_ID --profile $PROFILE flow.json
ãã¼ã«ã«ãã§ãã¯ééå¾ãcreate-contact-flow --status SAVED ã§ä¸æ¸ãã使ãã¦Connect APIã«ããããªãã¼ã·ã§ã³ãå®è¡ãããæåæã¯ä¸æ¸ããèªååé¤ããã
Why: ãã¼ã«ã«ãã§ãã¯ã¯JSONæ§é ã»é·ç§»åç §ã®æ´åæ§ã®ã¿æ¤è¨¼ãããActionTypeåºæã®ãã©ã¡ã¼ã¿å¶ç´ãErrors/Conditionsã®å¦¥å½æ§ã¯Connect APIå´ã§ããæ¤è¨¼ã§ããªããããAPIããªãã¼ã·ã§ã³ã§äºåã«ã¨ã©ã¼ãæ¤åºããã
ã¨ã©ã¼ãçºçããå ´å:
- ã¾ã aws-mcp (
aws___search_documentation/aws___read_documentation) ã§ AWS å ¬å¼ããã¥ã¡ã³ãã調æ»ãã - AWSå ¬å¼ããã¥ã¡ã³ãã«åºã¥ãã¦ä¿®æ£ãã
- æ¨æ¸¬ã«ããä¿®æ£ã¯é¿ãã
Deploy
# Create new flowï¼SAVED â ACTIVE ã®2ã¹ãããï¼
# Step 1: SAVEDç¶æ
ã§ä½æ
aws connect create-contact-flow \
--instance-id $INSTANCE_ID \
--name "Flow Name" \
--type CONTACT_FLOW \
--content "$(cat flow.json)" \
--status SAVED \
--profile $PROFILE
# Step 2: ACTIVEç¶æ
ã«å¤æ´ï¼$FLOW_ID 㯠Step 1 ã®åºåããåå¾ï¼
aws connect update-contact-flow-metadata \
--instance-id $INSTANCE_ID \
--contact-flow-id $FLOW_ID \
--contact-flow-state ACTIVE \
--profile $PROFILE
# Update existing flow
aws connect update-contact-flow-content \
--instance-id $INSTANCE_ID \
--contact-flow-id $FLOW_ID \
--content "$(cat flow.json)" \
--profile $PROFILE
Note:
create-contact-flowãããã©ã«ãï¼PUBLISHEDï¼ã§å®è¡ããã¨InvalidContactFlowExceptionã«ãªãå ´åãããã--status SAVEDâupdate-contact-flow-metadata --contact-flow-state ACTIVEã®2ã¹ãããæ¹å¼ã使ç¨ããã
Mode B: Convert from Diagram
å ¥åå½¢å¼ã«å¿ãã¦å¦çï¼
- Mermaid: ãã®ã¾ã¾ Step A-3 ã¸
- draw.io XML: ãã¼ã/ã¨ãã¸ãæ½åºãã¦Mermaidã«å¤æ â Step A-3 ã¸
- ç»å: Visionè§£æã§ããã¼æ§é ãèªã¿åã â Mermaidã«å¤æ â Step A-3 ã¸
夿å¾ã¯å¿ ãã¦ã¼ã¶ã¼ã«ç¢ºèªãã¦ããé²ãã
Key Constraints
positionã¯Metadata.ActionMetadata.<id>.positionã«å ¥ããï¼Actionç´ä¸ã®Metadata㯠Connect API ãæå¦ããï¼Identifier㯠UUID v4 å½¢å¼Versionã¯"2019-10-30"åºå®StartActionã¯å¿ ã1ã¤StartActionã¯UpdateFlowLoggingBehaviorã«ããï¼ãã°è¨é²ãããã¼éå§æã«æå¹åï¼- å
¨Actionã«
Transitionså¿ é ï¼DisconnectParticipantã¯ç©º{}ã§OKï¼ - Conditions å¿
é ActionType:
Loopï¼ContinueLooping + DoneLoopingï¼ãCheckHoursOfOperationï¼True + Falseï¼ãCompareï¼æä½1æ¡ä»¶ï¼ - StoreInput 使ãåã: IVRã¡ãã¥ã¼ï¼é¸æè¢åå²ï¼ã¯
StoreInput: "False"+ Conditionsãèªç±å ¥åï¼çªå·ä¿åï¼ã¯StoreInput: "True"+ Conditions ãªã - ãµã³ãã«ããã¼ã¯æä¾ããªã â è¦ä»¶ã«å¿ãã¦ã¼ãããè¨è¨ãããã¨
Security Rules
ãããã¤æä½ã®å®å ¨ã¬ã¼ã
scripts/deploy.shã®å®è¡ãã¾ãã¯aws connect create-contact-flow/aws connect update-contact-flow-contentã³ãã³ãã®å®è¡åã«ãå¿ ãã¦ã¼ã¶ã¼ã®æç¤ºçãªæ¿èªãå¾ããã¨.envãã¡ã¤ã«ã AWS ã¯ã¬ãã³ã·ã£ã«ãã¡ã¤ã«ï¼~/.aws/credentialsçï¼ãèªã¿åããªããã¨
å®å ¨ãªæä½ï¼ç¢ºèªä¸è¦ï¼
scripts/validate.sh <file>ã«ãããã¼ã«ã«ããªãã¼ã·ã§ã³ï¼--apiãªãã·ã§ã³å«ãã䏿¸ãä¿åã¯èªååé¤ãããï¼python3 scripts/layout.py <file>ã«ããã¬ã¤ã¢ã¦ã座æ¨ä»ä¸- ããã¼JSONã®ä½æã»ç·¨é
ãã¬ã¼ã¹ãã«ãã¼
<YOUR_XXX_ARN>ãã¬ã¼ã¹ãã«ãã¼ãå®éã® ARN ã«ç½®ãæããéã¯ãã¦ã¼ã¶ã¼ããæä¾ãããå¤ã®ã¿ä½¿ç¨ãããã¨- æ¨æ¸¬ãä»®ã®å¤ã§ ARN ãåããªããã¨
ã³ã¼ãã£ã³ã°è¦ç´
- ã·ã§ã«ã¹ã¯ãªãã: 夿°ã¯å¿ ãããã«ã¯ã©ã¼ãã§å²ããAWS CLI 弿°ã®çµã¿ç«ã¦ã«ã¯ bash é åã使ç¨ãã
- Python: æ¨æºã©ã¤ãã©ãªã®ã¿ä½¿ç¨ï¼å¤é¨ããã±ã¼ã¸ä¸å¯ï¼
- JSON: ãã³ãã¬ã¼ãã§ã¯å®éã® ARN/ID ã使ç¨ãã
<YOUR_XXX>ãã¬ã¼ã¹ãã«ãã¼ã使ã
Validation
3層ããªãã¼ã·ã§ã³æ§é ã§ããã¼ã®å質ãä¿è¨¼ããï¼
Layer 1: AWS MCP ãã©ã¡ã¼ã¿æ¤è¨¼
ããã¼JSONçææã« AWS MCP (aws___read_documentation) ã§åActionTypeã®ãã©ã¡ã¼ã¿ä»æ§ã確èªããã
references/action_types.mdã® AWS Docs ãã¹å¯¾å¿ãã¼ãã«ããURLãã¹ãåå¾- ãã©ã¡ã¼ã¿åã»åã»å¿ é /ä»»æãããã¥ã¡ã³ãã§ç §å
- æ¨æ¸¬ã«ãããã©ã¡ã¼ã¿è¨å®ãåé¿
Layer 2: ãã¼ã«ã«ããªãã¼ã·ã§ã³
./scripts/validate.sh flow.json
JSONæ§é ã»é·ç§»åç §æ´åæ§ã»ActionTypeå¶ç´ã»å¤ç«ãããã¯ã»ãããã¨ã³ããæ¤åºããã
Layer 3: Connect API ããªãã¼ã·ã§ã³
./scripts/validate.sh --api --instance-id $INSTANCE_ID --profile $PROFILE flow.json
ãã¼ã«ã«ãã§ãã¯ã§ã¯æ¤åºã§ããªãActionTypeåºæã®ãã©ã¡ã¼ã¿å¶ç´ãErrors/Conditionsã®å¦¥å½æ§ãConnect APIãæ¤è¨¼ããã--status SAVEDï¼ä¸æ¸ãä¿åï¼ã§ä½æããããæ¬çªã«å½±é¿ããªãã
Troubleshooting
ããããã¨ã©ã¼ã¨å¯¾å¦æ³
| ã¨ã©ã¼ | åå | å¯¾å¦ |
|---|---|---|
Invalid flow content |
JSONæ§é ã®ä¸å | ./scripts/validate.sh ã§ãã§ã㯠|
Position metadata in wrong location |
Actionç´ä¸ã«Metadataãé ç½® | Metadata.ActionMetadata.<id>.position ã«ç§»å |
StartAction not found |
StartActionã®IDãActionså ã«åå¨ããªã | UUIDã®ä¸è´ãç¢ºèª |
Queue not found |
ãã¥ã¼ARNã䏿£ | aws connect list-queues ã§æ£ããARNãåå¾ |
Lambda function not associated |
LambdaãConnectã«æªé£æº | Connect管çç»é¢ã§Lambda颿°ã追å |
Access denied |
IAM権éä¸è¶³ | connect:* 権éãIAMããªã·ã¼ã«è¿½å |
Conditions required for Loop |
Loop ã« ContinueLooping/DoneLooping ãä¸è¶³ | 両æ¹ã® Conditions ã追å |
StoreInput + Conditions conflict |
GetParticipantInput ã§ StoreInput=True 㨠Conditions ãä½µç¨ | StoreInput=True ãªã Conditions ãåé¤ãIVRã¡ãã¥ã¼ãªã StoreInput ãåé¤ |
Missing True/False conditions |
CheckHoursOfOperation ã« True/False ã® Conditions ãä¸è¶³ | True 㨠False ã®ä¸¡æ¹ã® Conditions ã追å |
InvalidContactFlowException on create |
create-contact-flow ããã©ã«ãï¼PUBLISHEDï¼ã§å¤±æ |
--status SAVED â update-contact-flow-metadata --contact-flow-state ACTIVE ã®2ã¹ãããã§ä½æ |
ã¨ã©ã¼èª¿æ»ã®æé
- ã¾ã
aws-mcp(aws___search_documentation/aws___read_documentation) ã§ AWS å ¬å¼ããã¥ã¡ã³ãã調æ»ãã references/action_types.mdã® AWS Docs ãã¹å¯¾å¿ãã¼ãã«ã§è©²å½ActionTypeã®ããã¥ã¡ã³ããã¹ã確èª- AWSå ¬å¼ããã¥ã¡ã³ãã«åºã¥ãã¦ä¿®æ£ãè¡ã
- æ¨æ¸¬ã«ããä¿®æ£ã¯é¿ããå¿ ãå ¬å¼ããã¥ã¡ã³ãã§è£ä»ããåã
layout.py ãã¨ã©ã¼ã«ãªãå ´å
- Python 3.8以ä¸ãå¿ è¦
- æ¨æºã©ã¤ãã©ãªã®ã¿ä½¿ç¨ï¼è¿½å ã¤ã³ã¹ãã¼ã«ä¸è¦ï¼
- å
¥åJSONãæ£ããæ§é ã
validate.shã§äºå確èª
References
- Action Types詳細:
references/action_types.md - ããã¼JSONæ§é :
references/flow_json_structure.md - Mermaidè¨æ³:
references/mermaid_notation.md - AWS CLIã³ãã³ã:
references/aws_cli_commands.md - ã¬ã¤ã¢ã¦ãã«ã¼ã«:
references/layout_rules.md - ã¨ã©ã¼ãã³ããªã³ã°:
references/error_handling_patterns.md