# flow_runner v6.15.1 - Table of Contents

> A FLOIP spec compatible flow runner

## Modules

- [FlowRunner](FlowRunner.md): Provides functions to run a Flow.

- [FlowRunner.BlockAutodoc](FlowRunner.BlockAutodoc.md): Compile-time documentation collection for FLOIP block modules.
- [FlowRunner.Blocks](FlowRunner.Blocks.md): The default blocks as per the FLOIP spec 1.0.0-rc4

- [FlowRunner.Builder.Floip1](FlowRunner.Builder.Floip1.md): A module to make it easier to create flows without needing
to write the JSON manually

- [FlowRunner.Compile](FlowRunner.Compile.md): Compile converts a JSON flow into an internal representation that is able to be run.

- [FlowRunner.Context](FlowRunner.Context.md): A context provides information about an ongoing user flow session.

- [FlowRunner.Contract](FlowRunner.Contract.md): Specify the callback functions to run a Flow.

- [FlowRunner.Custom](FlowRunner.Custom.md): 
A base module from which one can implement one's custom
flow runner.
- [FlowRunner.CustomBlocks.DynamicSelectOneResponse](FlowRunner.CustomBlocks.DynamicSelectOneResponse.md): A custom FLOIP block for dynamically generating the
list of buttons available but at runtime.

- [FlowRunner.CustomBlocks.MetaConversion](FlowRunner.CustomBlocks.MetaConversion.md): A block to handle Meta Conversions API events.
- [FlowRunner.CustomBlocks.ScheduleFlow](FlowRunner.CustomBlocks.ScheduleFlow.md): A custom FLOIP block for scheduling the execution of a flow
for some time in the future (instead of executing it immediately),
or cancelling a previously scheduled flow.

- [FlowRunner.CustomBlocks.SendContentMessage](FlowRunner.CustomBlocks.SendContentMessage.md): A block to handle the sending of content cards from Turn

- [FlowRunner.CustomBlocks.SetChatProperty](FlowRunner.CustomBlocks.SetChatProperty.md): A custom FLOIP block for setting properties on a chat
that is available within the current context.
- [FlowRunner.CustomBlocks.SetMessageProperty](FlowRunner.CustomBlocks.SetMessageProperty.md): A custom FLOIP block for setting properties on a message
that is available within the current context

- [FlowRunner.CustomBlocks.UpdateDictionary](FlowRunner.CustomBlocks.UpdateDictionary.md): A custom FLOIP block to update a dictionary contained in the FLOIP context variables.

- [FlowRunner.CustomBlocks.Wait](FlowRunner.CustomBlocks.Wait.md): A Wait block type to introduce delays in Journey flows.
- [FlowRunner.CustomBlocks.Webhook](FlowRunner.CustomBlocks.Webhook.md): A custom Webhook block type for Turn's Build functionality.
- [FlowRunner.CustomBlocks.WhatsAppCallPermissionRequest](FlowRunner.CustomBlocks.WhatsAppCallPermissionRequest.md): A block to handle WhatsApp call permission request messages.
- [FlowRunner.CustomBlocks.WhatsAppCallToAction](FlowRunner.CustomBlocks.WhatsAppCallToAction.md): A block to handle WhatsApp interactive Call-to-Action (CTA) URL messages.
- [FlowRunner.CustomBlocks.WhatsAppCatalog](FlowRunner.CustomBlocks.WhatsAppCatalog.md): A block to handle WhatsApp catalog messages.
- [FlowRunner.CustomBlocks.WhatsAppRequestLocation](FlowRunner.CustomBlocks.WhatsAppRequestLocation.md): A block to handle WhatsApp request location messages.
- [FlowRunner.CustomBlocks.WhatsAppSendFlow](FlowRunner.CustomBlocks.WhatsAppSendFlow.md): A block to handle the sending of WhatsApp Flows.
- [FlowRunner.CustomBlocks.WhatsAppTemplateMessage](FlowRunner.CustomBlocks.WhatsAppTemplateMessage.md): A block to handle the sending of the WhatsApp message templates

- [FlowRunner.CustomBlocks.WhatsAppVideoCallRequest](FlowRunner.CustomBlocks.WhatsAppVideoCallRequest.md): A block to handle WhatsApp video call messages.
- [FlowRunner.CustomBlocks.WhatsAppVoiceCallRequest](FlowRunner.CustomBlocks.WhatsAppVoiceCallRequest.md): A block to handle WhatsApp voice call messages.
- [FlowRunner.FlowBuilder](FlowRunner.FlowBuilder.md): A Flow Builder DSL

- [FlowRunner.Simulator](FlowRunner.Simulator.md): A simulator for interacting with the Flow Runner.
- [FlowRunner.Simulator.Output](FlowRunner.Simulator.Output.md): The output of a state in simulator step

- [FlowRunner.Spec.Block](FlowRunner.Spec.Block.md): A Block is a unit of execution within a flow. It may wait for user input
and provide content that should be rendered to the user.

- [FlowRunner.Spec.Blocks.Case](FlowRunner.Spec.Blocks.Case.md): Switch between various exit conditions.
- [FlowRunner.Spec.Blocks.Log](FlowRunner.Spec.Blocks.Log.md): Log things!

- [FlowRunner.Spec.Blocks.Message](FlowRunner.Spec.Blocks.Message.md): A type of block that sends a message to the user.

- [FlowRunner.Spec.Blocks.NumericResponse](FlowRunner.Spec.Blocks.NumericResponse.md): A specialisation of a block that allows users to send numeric input.
- [FlowRunner.Spec.Blocks.OpenResponse](FlowRunner.Spec.Blocks.OpenResponse.md): A specialisation of a block that sends users a set of options and
waits for the user to come back with one of them.

- [FlowRunner.Spec.Blocks.Output](FlowRunner.Spec.Blocks.Output.md): Output to a Flow Result which is not yet implemented.
- [FlowRunner.Spec.Blocks.RunFlow](FlowRunner.Spec.Blocks.RunFlow.md): Implements the Core.RunFlow block type. Temporarily defers execution to a
new flow.
- [FlowRunner.Spec.Blocks.SelectOneResponse](FlowRunner.Spec.Blocks.SelectOneResponse.md): A specialisation of a block that sends users a set of options and
waits for the user to come back with one of them.

- [FlowRunner.Spec.Blocks.SetContactProperty](FlowRunner.Spec.Blocks.SetContactProperty.md): Set a contact property.

- [FlowRunner.Spec.Blocks.SetGroupMembership](FlowRunner.Spec.Blocks.SetGroupMembership.md): Set a group membership.
- [FlowRunner.Spec.Container](FlowRunner.Spec.Container.md): Container contains a set of flows and resources according to the Flow spec.

- [FlowRunner.Spec.Exit](FlowRunner.Spec.Exit.md): An exit is a potential branch off a FlowRunner.Spec.Block.

- [FlowRunner.Spec.Flow](FlowRunner.Spec.Flow.md): A Flow is a set of connected blocks as defined by the Flow Spec.

- [FlowRunner.Spec.Language](FlowRunner.Spec.Language.md): Languages are ISO-639-3 codes with some extra metadata

- [FlowRunner.Spec.Resource](FlowRunner.Spec.Resource.md): Resource stores a piece of content in various languages and modes. Usually associated with a block.

- [FlowRunner.Spec.ResourceValue](FlowRunner.Spec.ResourceValue.md): ResourceValue is a struct that stores a piece of content for a given language and mode.

- [FlowRunner.SpecLoader](FlowRunner.SpecLoader.md): A macro to help loading of JSON floip specs into structs.

