FlowLang Reference
FlowLang is a typed authoring surface for Amazon Connect contact
flows and contact-flow modules. Each typed block (MessageParticipant,
InvokeLambdaFunction, TransferContactToQueue, and the rest of the
catalogue) surfaces as a Rhai-side namespace whose factory + setter
chain produces the wire JSON Connect deploys at the edge.
This reference is generated from the same IDE-docs catalogue that powers hover, completion, and signature-help inside the converter. Adding a new typed block to the codegen pipeline lights up its docs here, its hover bubble in the editor, and its completion entries in one pass: the catalogue is the single source of truth.
How to read these pages
Each namespace page carries:
- A short description of what the namespace authors.
- The factory form. Typed blocks construct via a bare global
function whose name matches the block (
Foo()/Foo("uuid")), so the same identifier doubles as the namespace reference. Multi-method namespaces (Cond,Arn,Flow,Module) use static-module syntax (Cond::equals(...)). - Every method the resulting handle exposes: parameter
setters, transition wirings, error handlers, the universal
meta_*/set_idfamily.
Method signatures use param: Type for required arguments and
param?: Type for optional ones; the return type is the chain
link the method produces (typically <Wire>Handle for blocks
that chain into the wire JSON, () for terminal sinks).
Catalogue
Language reference →
Syntax, types, control flow, functions, modules — every page from the Rhai book, rebranded for FlowLang and styled to match.
Namespace catalogue
Flow-level surfaces
Entities
Condition builders
ARN builder
Number builder
Wire-shape escape hatch
Typed blocks
- ActionSimulation
- AssociateContactToCustomerProfile
- AuthenticateParticipant
- CheckHoursOfOperation
- CheckMetricData
- CheckOutboundCallStatus
- CheckSecurityStatus
- CheckSegment
- CheckSegmentMembershipForCustomerProfile
- CheckSimulation
- CheckVoiceId
- Compare
- CompleteOutboundCall
- ConnectParticipantWithLexBot
- CreateCallbackContact
- CreateCase
- CreateContact
- CreateCustomerProfile
- CreatePersistentContactAssociation
- CreateTask
- CreateWisdomSession
- DequeueContactAndTransferToQueue
- DisconnectParticipant
- DistributeByPercentage
- EndFlowExecution
- EndFlowModuleExecution
- EvaluateDataTableValues
- GetCalculatedAttributes
- GetCalculatedAttributesForCustomerProfile
- GetCase
- GetCaseId
- GetCustomerProfile
- GetCustomerProfileObject
- GetCustomerProfileRecommendations
- GetMetricData
- GetOutboundCommunicationStatus
- GetParticipantInput
- InvokeExternalTool
- InvokeFlowModule
- InvokeInformationExtraction
- InvokeLambdaFunction
- InvokeThirdPartyAction
- ListDataTableValues
- LoadContactContent
- LoadExternalToolResult
- LoadInformationExtractionResult
- LoadLambdaFunctionResult
- Loop
- MessageParticipant
- MessageParticipantIteratively
- ObserveSimulation
- OfferContactToAgent
- PutDialRequest
- PutLambdaInvokeRequest
- RenderMessageTemplate
- Resume
- ResumeContact
- SendEmail
- SendOutboundEmail
- SendSMS
- SendWhatsAppMessage
- SetSecurityBehavior
- ShowView
- StartExistingMessageProcessing
- StartOutboundChatContact
- StartOutboundEmailContact
- StartVoiceIdStream
- TagContact
- TransferContactToAgent
- TransferContactToQueue
- TransferParticipantToThirdParty
- TransferToFlow
- TransferToVoicemail
- UnTagContact
- UpdateCase
- UpdateContactAttributes
- UpdateContactCallbackNumber
- UpdateContactData
- UpdateContactEventHooks
- UpdateContactMediaProcessing
- UpdateContactMediaStreamingBehavior
- UpdateContactRecordingAndAnalyticsBehavior
- UpdateContactRecordingBehavior
- UpdateContactRoutingBehavior
- UpdateContactRoutingCriteria
- UpdateContactTargetQueue
- UpdateContactTextToSpeechVoice
- UpdateCustomerProfile
- UpdateFlowAttributes
- UpdateFlowLoggingBehavior
- UpdatePreviousContactParticipantState
- UpdateRoutingCriteria
- UpsertDataTableValues
- Wait