actions

package
v0.72.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2020 License: AGPL-3.0 Imports: 21 Imported by: 2

Documentation

Index

Constants

View Source
const (
	CategorySuccess = "Success"
	CategorySkipped = "Skipped"
	CategoryFailure = "Failure"
)

common category names

View Source
const ResthookPayload = `` /* 898-byte string literal not displayed */

ResthookPayload is the POST payload used by resthooks

View Source
const TypeAddContactGroups string = "add_contact_groups"

TypeAddContactGroups is our type for the add to groups action

View Source
const TypeAddContactURN string = "add_contact_urn"

TypeAddContactURN is our type for the add URN action

View Source
const TypeAddInputLabels string = "add_input_labels"

TypeAddInputLabels is the type for the add label action

View Source
const TypeCallClassifier string = "call_classifier"

TypeCallClassifier is the type for the call classifier action

View Source
const TypeCallResthook string = "call_resthook"

TypeCallResthook is the type for the call resthook action

View Source
const TypeCallWebhook string = "call_webhook"

TypeCallWebhook is the type for the call webhook action

View Source
const TypeEnterFlow string = "enter_flow"

TypeEnterFlow is the type for the enter flow action

View Source
const TypePlayAudio string = "play_audio"

TypePlayAudio is the type for the play audio action

View Source
const TypeRemoveContactGroups string = "remove_contact_groups"

TypeRemoveContactGroups is the type for the remove from groups action

View Source
const TypeSayMsg string = "say_msg"

TypeSayMsg is the type for the say message action

View Source
const TypeSendBroadcast string = "send_broadcast"

TypeSendBroadcast is the type for the send broadcast action

View Source
const TypeSendEmail string = "send_email"

TypeSendEmail is the type for the send email action

View Source
const TypeSendMsg string = "send_msg"

TypeSendMsg is the type for the send message action

View Source
const TypeSetContactChannel string = "set_contact_channel"

TypeSetContactChannel is the type for the set contact channel action

View Source
const TypeSetContactField string = "set_contact_field"

TypeSetContactField is the type for the set contact field action

View Source
const TypeSetContactLanguage string = "set_contact_language"

TypeSetContactLanguage is the type for the set contact Language action

View Source
const TypeSetContactName string = "set_contact_name"

TypeSetContactName is the type for the set contact name action

View Source
const TypeSetContactTimezone string = "set_contact_timezone"

TypeSetContactTimezone is the type for the set contact timezone action

View Source
const TypeSetRunResult string = "set_run_result"

TypeSetRunResult is the type for the set run result action

View Source
const TypeStartSession string = "start_session"

TypeStartSession is the type for the start session action

View Source
const TypeTransferAirtime string = "transfer_airtime"

TypeTransferAirtime is the type for the transfer airtime action

Variables

This section is empty.

Functions

func ReadAction added in v0.11.0

func ReadAction(data json.RawMessage) (flows.Action, error)

ReadAction reads an action from the given JSON

func RegisteredTypes added in v0.23.0

func RegisteredTypes() map[string](func() flows.Action)

RegisteredTypes gets the registered types of action

Types

type AddContactGroupsAction added in v0.6.0

type AddContactGroupsAction struct {
	Groups []*assets.GroupReference `json:"groups" validate:"required,dive"`
	// contains filtered or unexported fields
}

AddContactGroupsAction can be used to add a contact to one or more groups. A [event:contact_groups_changed] event will be created for the groups which the contact has been added to.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "add_contact_groups",
  "groups": [{
    "uuid": "1e1ce1e1-9288-4504-869e-022d1003c72a",
    "name": "Customers"
  }]
}

@action add_contact_groups

func NewAddContactGroups added in v0.48.0

func NewAddContactGroups(uuid flows.ActionUUID, groups []*assets.GroupReference) *AddContactGroupsAction

NewAddContactGroups creates a new add to groups action

func (*AddContactGroupsAction) AllowedFlowTypes added in v0.14.0

func (a *AddContactGroupsAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*AddContactGroupsAction) Execute added in v0.6.0

func (a *AddContactGroupsAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute adds our contact to the specified groups

func (*AddContactGroupsAction) LocalizationUUID added in v0.48.0

func (a *AddContactGroupsAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*AddContactGroupsAction) Type added in v0.6.0

func (a *AddContactGroupsAction) Type() string

Type returns the type of this action

func (*AddContactGroupsAction) UUID added in v0.48.0

func (a *AddContactGroupsAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*AddContactGroupsAction) Validate added in v0.6.0

func (a *AddContactGroupsAction) Validate() error

Validate validates our action is valid

type AddContactURNAction added in v0.6.0

type AddContactURNAction struct {
	Scheme string `json:"scheme" validate:"urnscheme"`
	Path   string `json:"path" validate:"required" engine:"evaluated"`
	// contains filtered or unexported fields
}

AddContactURNAction can be used to add a URN to the current contact. A [event:contact_urns_changed] event will be created when this action is encountered.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "add_contact_urn",
  "scheme": "tel",
  "path": "@results.phone_number.value"
}

@action add_contact_urn

func NewAddContactURN added in v0.48.0

func NewAddContactURN(uuid flows.ActionUUID, scheme string, path string) *AddContactURNAction

NewAddContactURN creates a new add URN action

func (*AddContactURNAction) AllowedFlowTypes added in v0.14.0

func (a *AddContactURNAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*AddContactURNAction) Execute added in v0.6.0

func (a *AddContactURNAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs the labeling action

func (*AddContactURNAction) LocalizationUUID added in v0.48.0

func (a *AddContactURNAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*AddContactURNAction) Type added in v0.6.0

func (a *AddContactURNAction) Type() string

Type returns the type of this action

func (*AddContactURNAction) UUID added in v0.48.0

func (a *AddContactURNAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*AddContactURNAction) Validate added in v0.6.0

func (a *AddContactURNAction) Validate() error

Validate validates our action is valid

type AddInputLabelsAction added in v0.6.0

type AddInputLabelsAction struct {
	Labels []*assets.LabelReference `json:"labels" validate:"required,dive"`
	// contains filtered or unexported fields
}

AddInputLabelsAction can be used to add labels to the last user input on a flow. An [event:input_labels_added] event will be created with the labels added when this action is encountered. If there is no user input at that point then this action will be ignored.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "add_input_labels",
  "labels": [{
    "uuid": "3f65d88a-95dc-4140-9451-943e94e06fea",
    "name": "Spam"
  }]
}

@action add_input_labels

func NewAddInputLabels added in v0.48.0

func NewAddInputLabels(uuid flows.ActionUUID, labels []*assets.LabelReference) *AddInputLabelsAction

NewAddInputLabels creates a new add labels action

func (*AddInputLabelsAction) AllowedFlowTypes added in v0.14.0

func (a *AddInputLabelsAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*AddInputLabelsAction) Execute added in v0.6.0

func (a *AddInputLabelsAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs the labeling action

func (*AddInputLabelsAction) LocalizationUUID added in v0.48.0

func (a *AddInputLabelsAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*AddInputLabelsAction) Type added in v0.6.0

func (a *AddInputLabelsAction) Type() string

Type returns the type of this action

func (*AddInputLabelsAction) UUID added in v0.48.0

func (a *AddInputLabelsAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*AddInputLabelsAction) Validate added in v0.6.0

func (a *AddInputLabelsAction) Validate() error

Validate validates our action is valid

type CallClassifierAction added in v0.51.0

type CallClassifierAction struct {
	Classifier *assets.ClassifierReference `json:"classifier" validate:"required"`
	Input      string                      `json:"input" validate:"required" engine:"evaluated"`
	ResultName string                      `json:"result_name" validate:"required"`
	// contains filtered or unexported fields
}

CallClassifierAction can be used to classify the intent and entities from a given input using an NLU classifier. It always saves a result indicating whether the classification was successful, skipped or failed, and what the extracted intents and entities were.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "call_classifier",
  "classifier": {
    "uuid": "1c06c884-39dd-4ce4-ad9f-9a01cbe6c000",
    "name": "Booking"
  },
  "input": "@input.text",
  "result_name": "Intent"
}

@action call_classifier

func NewCallClassifier added in v0.51.0

func NewCallClassifier(uuid flows.ActionUUID, classifier *assets.ClassifierReference, input string, resultName string) *CallClassifierAction

NewCallClassifier creates a new call classifier action

func (*CallClassifierAction) AllowedFlowTypes added in v0.51.0

func (a *CallClassifierAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*CallClassifierAction) Execute added in v0.51.0

func (a *CallClassifierAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*CallClassifierAction) LocalizationUUID added in v0.51.0

func (a *CallClassifierAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*CallClassifierAction) Results added in v0.51.0

func (a *CallClassifierAction) Results(include func(*flows.ResultInfo))

Results enumerates any results generated by this flow object

func (*CallClassifierAction) Type added in v0.51.0

func (a *CallClassifierAction) Type() string

Type returns the type of this action

func (*CallClassifierAction) UUID added in v0.51.0

func (a *CallClassifierAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*CallClassifierAction) Validate added in v0.51.0

func (a *CallClassifierAction) Validate() error

Validate validates our action is valid

type CallResthookAction added in v0.10.20

type CallResthookAction struct {
	Resthook   string `json:"resthook" validate:"required"`
	ResultName string `json:"result_name,omitempty"`
	// contains filtered or unexported fields
}

CallResthookAction can be used to call a resthook.

A [event:webhook_called] event will be created for each subscriber of the resthook with the results of the HTTP call. If the action has `result_name` set, a result will be created with that name, and if the resthook returns valid JSON, that will be accessible through `extra` on the result.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "call_resthook",
  "resthook": "new-registration"
}

@action call_resthook

func NewCallResthook added in v0.48.0

func NewCallResthook(uuid flows.ActionUUID, resthook string, resultName string) *CallResthookAction

NewCallResthook creates a new call resthook action

func (*CallResthookAction) AllowedFlowTypes added in v0.14.0

func (a *CallResthookAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*CallResthookAction) Execute added in v0.10.20

func (a *CallResthookAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*CallResthookAction) LocalizationUUID added in v0.48.0

func (a *CallResthookAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*CallResthookAction) Results added in v0.42.0

func (a *CallResthookAction) Results(include func(*flows.ResultInfo))

Results enumerates any results generated by this flow object

func (*CallResthookAction) Type added in v0.10.20

func (a *CallResthookAction) Type() string

Type returns the type of this action

func (*CallResthookAction) UUID added in v0.48.0

func (a *CallResthookAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*CallResthookAction) Validate added in v0.10.20

func (a *CallResthookAction) Validate() error

Validate validates our action is valid

type CallWebhookAction added in v0.6.0

type CallWebhookAction struct {
	Method     string            `json:"method" validate:"required,http_method"`
	URL        string            `json:"url" validate:"required" engine:"evaluated"`
	Headers    map[string]string `json:"headers,omitempty" engine:"evaluated"`
	Body       string            `json:"body,omitempty" engine:"evaluated"`
	ResultName string            `json:"result_name,omitempty"`
	// contains filtered or unexported fields
}

CallWebhookAction can be used to call an external service. The body, header and url fields may be templates and will be evaluated at runtime. A [event:webhook_called] event will be created based on the results of the HTTP call. If this action has a `result_name`, then addtionally it will create a new result with that name. If the webhook returned valid JSON, that will be accessible through `extra` on the result.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "call_webhook",
  "method": "GET",
  "url": "http://localhost:49998/?cmd=success",
  "headers": {
    "Authorization": "Token AAFFZZHH"
  },
  "result_name": "webhook"
}

@action call_webhook

func NewCallWebhook added in v0.48.0

func NewCallWebhook(uuid flows.ActionUUID, method string, url string, headers map[string]string, body string, resultName string) *CallWebhookAction

NewCallWebhook creates a new call webhook action

func (*CallWebhookAction) AllowedFlowTypes added in v0.14.0

func (a *CallWebhookAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*CallWebhookAction) Execute added in v0.6.0

func (a *CallWebhookAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*CallWebhookAction) LocalizationUUID added in v0.48.0

func (a *CallWebhookAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*CallWebhookAction) Results added in v0.42.0

func (a *CallWebhookAction) Results(include func(*flows.ResultInfo))

Results enumerates any results generated by this flow object

func (*CallWebhookAction) Type added in v0.6.0

func (a *CallWebhookAction) Type() string

Type returns the type of this action

func (*CallWebhookAction) UUID added in v0.48.0

func (a *CallWebhookAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*CallWebhookAction) Validate added in v0.6.0

func (a *CallWebhookAction) Validate() error

Validate validates our action is valid

type EnterFlowAction added in v0.25.0

type EnterFlowAction struct {
	Flow     *assets.FlowReference `json:"flow" validate:"required"`
	Terminal bool                  `json:"terminal,omitempty"`
	// contains filtered or unexported fields
}

EnterFlowAction can be used to start a contact down another flow. The current flow will pause until the subflow exits or expires.

A [event:flow_entered] event will be created to record that the flow was started.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "enter_flow",
  "flow": {"uuid": "b7cf0d83-f1c9-411c-96fd-c511a4cfa86d", "name": "Collect Language"},
  "terminal": false
}

@action enter_flow

func NewEnterFlow added in v0.48.0

func NewEnterFlow(uuid flows.ActionUUID, flow *assets.FlowReference, terminal bool) *EnterFlowAction

NewEnterFlow creates a new start flow action

func (*EnterFlowAction) AllowedFlowTypes added in v0.25.0

func (a *EnterFlowAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*EnterFlowAction) Execute added in v0.25.0

func (a *EnterFlowAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs our action

func (*EnterFlowAction) LocalizationUUID added in v0.48.0

func (a *EnterFlowAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*EnterFlowAction) Type added in v0.48.0

func (a *EnterFlowAction) Type() string

Type returns the type of this action

func (*EnterFlowAction) UUID added in v0.48.0

func (a *EnterFlowAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*EnterFlowAction) Validate added in v0.25.0

func (a *EnterFlowAction) Validate() error

Validate validates our action is valid

type PlayAudioAction added in v0.24.0

type PlayAudioAction struct {
	AudioURL string `json:"audio_url" validate:"required" engine:"localized,evaluated"`
	// contains filtered or unexported fields
}

PlayAudioAction can be used to play an audio recording in a voice flow. It will generate an [event:ivr_created] event if there is a valid audio URL. This will contain a message which the caller should handle as an IVR play command using the audio attachment.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "play_audio",
  "audio_url": "http://uploads.temba.io/2353262.m4a"
}

@action play_audio

func NewPlayAudio added in v0.48.0

func NewPlayAudio(uuid flows.ActionUUID, audioURL string) *PlayAudioAction

NewPlayAudio creates a new play message action

func (*PlayAudioAction) AllowedFlowTypes added in v0.24.0

func (a *PlayAudioAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*PlayAudioAction) Execute added in v0.24.0

func (a *PlayAudioAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*PlayAudioAction) LocalizationUUID added in v0.48.0

func (a *PlayAudioAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*PlayAudioAction) Type added in v0.48.0

func (a *PlayAudioAction) Type() string

Type returns the type of this action

func (*PlayAudioAction) UUID added in v0.48.0

func (a *PlayAudioAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*PlayAudioAction) Validate added in v0.24.0

func (a *PlayAudioAction) Validate() error

Validate validates our action is valid

type RemoveContactGroupsAction added in v0.6.0

type RemoveContactGroupsAction struct {
	Groups    []*assets.GroupReference `json:"groups,omitempty" validate:"dive"`
	AllGroups bool                     `json:"all_groups,omitempty"`
	// contains filtered or unexported fields
}

RemoveContactGroupsAction can be used to remove a contact from one or more groups. A [event:contact_groups_changed] event will be created for the groups which the contact is removed from. Groups can either be explicitly provided or `all_groups` can be set to true to remove the contact from all non-dynamic groups.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "remove_contact_groups",
  "groups": [{
    "uuid": "b7cf0d83-f1c9-411c-96fd-c511a4cfa86d",
    "name": "Registered Users"
  }]
}

@action remove_contact_groups

func NewRemoveContactGroups added in v0.48.0

func NewRemoveContactGroups(uuid flows.ActionUUID, groups []*assets.GroupReference, allGroups bool) *RemoveContactGroupsAction

NewRemoveContactGroups creates a new remove from groups action

func (*RemoveContactGroupsAction) AllowedFlowTypes added in v0.14.0

func (a *RemoveContactGroupsAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*RemoveContactGroupsAction) Execute added in v0.6.0

func (a *RemoveContactGroupsAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs the action

func (*RemoveContactGroupsAction) LocalizationUUID added in v0.48.0

func (a *RemoveContactGroupsAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*RemoveContactGroupsAction) Type added in v0.6.0

func (a *RemoveContactGroupsAction) Type() string

Type returns the type of this action

func (*RemoveContactGroupsAction) UUID added in v0.48.0

func (a *RemoveContactGroupsAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*RemoveContactGroupsAction) Validate added in v0.6.0

func (a *RemoveContactGroupsAction) Validate() error

Validate validates our action is valid

type SayMsgAction added in v0.24.0

type SayMsgAction struct {
	Text     string `json:"text" validate:"required" engine:"localized,evaluated"`
	AudioURL string `json:"audio_url,omitempty"`
	// contains filtered or unexported fields
}

SayMsgAction can be used to communicate with the contact in a voice flow by either reading a message with TTS or playing a pre-recorded audio file. It will generate an [event:ivr_created] event if there is a valid audio URL or backdown text. This will contain a message which the caller should handle as an IVR play command if it has an audio attachment, or otherwise an IVR say command using the message text.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "say_msg",
  "audio_url": "http://uploads.temba.io/2353262.m4a",
  "text": "Hi @contact.name, are you ready to complete today's survey?"
}

@action say_msg

func NewSayMsg added in v0.48.0

func NewSayMsg(uuid flows.ActionUUID, text string, audioURL string) *SayMsgAction

NewSayMsg creates a new say message action

func (*SayMsgAction) AllowedFlowTypes added in v0.24.0

func (a *SayMsgAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SayMsgAction) Execute added in v0.24.0

func (a *SayMsgAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SayMsgAction) LocalizationUUID added in v0.48.0

func (a *SayMsgAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SayMsgAction) Type added in v0.48.0

func (a *SayMsgAction) Type() string

Type returns the type of this action

func (*SayMsgAction) UUID added in v0.48.0

func (a *SayMsgAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SayMsgAction) Validate added in v0.24.0

func (a *SayMsgAction) Validate() error

Validate validates our action is valid

type SendBroadcastAction added in v0.6.0

type SendBroadcastAction struct {
	// contains filtered or unexported fields
}

SendBroadcastAction can be used to send a message to one or more contacts. It accepts a list of URNs, a list of groups and a list of contacts.

The URNs and text fields may be templates. A [event:broadcast_created] event will be created for each unique urn, contact and group with the evaluated text.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "send_broadcast",
  "urns": ["tel:+12065551212"],
  "text": "Hi @contact.name, are you ready to complete today's survey?"
}

@action send_broadcast

func NewSendBroadcast added in v0.48.0

func NewSendBroadcast(uuid flows.ActionUUID, text string, attachments []string, quickReplies []string, urns []urns.URN, contacts []*flows.ContactReference, groups []*assets.GroupReference, legacyVars []string) *SendBroadcastAction

NewSendBroadcast creates a new send broadcast action

func (*SendBroadcastAction) AllowedFlowTypes added in v0.14.0

func (a *SendBroadcastAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SendBroadcastAction) Execute added in v0.6.0

func (a *SendBroadcastAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SendBroadcastAction) LocalizationUUID added in v0.48.0

func (a *SendBroadcastAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SendBroadcastAction) Type added in v0.6.0

func (a *SendBroadcastAction) Type() string

Type returns the type of this action

func (*SendBroadcastAction) UUID added in v0.48.0

func (a *SendBroadcastAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SendBroadcastAction) Validate added in v0.6.0

func (a *SendBroadcastAction) Validate() error

Validate validates our action is valid

type SendEmailAction added in v0.6.0

type SendEmailAction struct {
	Addresses []string `json:"addresses" validate:"required,min=1" engine:"evaluated"`
	Subject   string   `json:"subject" validate:"required" engine:"localized,evaluated"`
	Body      string   `json:"body" validate:"required" engine:"localized,evaluated"`
	// contains filtered or unexported fields
}

SendEmailAction can be used to send an email to one or more recipients. The subject, body and addresses can all contain expressions.

An [event:email_sent] event will be created if the email could be sent.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "send_email",
  "addresses": ["@urns.mailto"],
  "subject": "Here is your activation token",
  "body": "Your activation token is @contact.fields.activation_token"
}

@action send_email

func NewSendEmail added in v0.48.0

func NewSendEmail(uuid flows.ActionUUID, addresses []string, subject string, body string) *SendEmailAction

NewSendEmail creates a new send email action

func (*SendEmailAction) AllowedFlowTypes added in v0.14.0

func (a *SendEmailAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SendEmailAction) Execute added in v0.6.0

func (a *SendEmailAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute creates the email events

func (*SendEmailAction) LocalizationUUID added in v0.48.0

func (a *SendEmailAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SendEmailAction) Type added in v0.6.0

func (a *SendEmailAction) Type() string

Type returns the type of this action

func (*SendEmailAction) UUID added in v0.48.0

func (a *SendEmailAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SendEmailAction) Validate added in v0.6.0

func (a *SendEmailAction) Validate() error

Validate validates our action is valid

type SendMsgAction

type SendMsgAction struct {
	AllURNs    bool           `json:"all_urns,omitempty"`
	Templating *Templating    `json:"templating,omitempty" validate:"omitempty,dive"`
	Topic      flows.MsgTopic `json:"topic,omitempty" validate:"omitempty,msg_topic"`
	// contains filtered or unexported fields
}

SendMsgAction can be used to reply to the current contact in a flow. The text field may contain templates. The action will attempt to find pairs of URNs and channels which can be used for sending. If it can't find such a pair, it will create a message without a channel or URN.

A [event:msg_created] event will be created with the evaluated text.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "send_msg",
  "text": "Hi @contact.name, are you ready to complete today's survey?",
  "attachments": [],
  "all_urns": false,
  "templating": {
    "uuid": "32c2ead6-3fa3-4402-8e27-9cc718175c5a",
    "template": {
      "uuid": "3ce100b7-a734-4b4e-891b-350b1279ade2",
      "name": "revive_issue"
    },
    "variables": ["@contact.name"]
  },
  "topic": "event"
}

@action send_msg

func NewSendMsg added in v0.48.0

func NewSendMsg(uuid flows.ActionUUID, text string, attachments []string, quickReplies []string, allURNs bool) *SendMsgAction

NewSendMsg creates a new send msg action

func (*SendMsgAction) AllowedFlowTypes added in v0.14.0

func (a *SendMsgAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SendMsgAction) Execute

func (a *SendMsgAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SendMsgAction) LocalizationUUID added in v0.48.0

func (a *SendMsgAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SendMsgAction) Type

func (a *SendMsgAction) Type() string

Type returns the type of this action

func (*SendMsgAction) UUID added in v0.48.0

func (a *SendMsgAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SendMsgAction) Validate

func (a *SendMsgAction) Validate() error

Validate validates our action is valid

type SetContactChannelAction added in v0.6.0

type SetContactChannelAction struct {
	Channel *assets.ChannelReference `json:"channel" validate:"omitempty,dive"`
	// contains filtered or unexported fields
}

SetContactChannelAction can be used to change or clear the preferred channel of the current contact.

Because channel affinity is a property of a contact's URNs, a [event:contact_urns_changed] event will be created if any changes are made to the contact's URNs.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "set_contact_channel",
  "channel": {"uuid": "4bb288a0-7fca-4da1-abe8-59a593aff648", "name": "Facebook Channel"}
}

@action set_contact_channel

func NewSetContactChannel added in v0.48.0

func NewSetContactChannel(uuid flows.ActionUUID, channel *assets.ChannelReference) *SetContactChannelAction

NewSetContactChannel creates a new set channel action

func (*SetContactChannelAction) AllowedFlowTypes added in v0.14.0

func (a *SetContactChannelAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SetContactChannelAction) Execute added in v0.6.0

func (a *SetContactChannelAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs our action

func (*SetContactChannelAction) LocalizationUUID added in v0.48.0

func (a *SetContactChannelAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SetContactChannelAction) Type added in v0.6.0

func (a *SetContactChannelAction) Type() string

Type returns the type of this action

func (*SetContactChannelAction) UUID added in v0.48.0

func (a *SetContactChannelAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SetContactChannelAction) Validate added in v0.6.0

func (a *SetContactChannelAction) Validate() error

Validate validates our action is valid

type SetContactFieldAction added in v0.6.0

type SetContactFieldAction struct {
	Field *assets.FieldReference `json:"field" validate:"required"`
	Value string                 `json:"value" engine:"evaluated"`
	// contains filtered or unexported fields
}

SetContactFieldAction can be used to update a field value on the contact. The value is a localizable template and white space is trimmed from the final value. An empty string clears the value. A [event:contact_field_changed] event will be created with the corresponding value.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "set_contact_field",
  "field": {"key": "gender", "name": "Gender"},
  "value": "Female"
}

@action set_contact_field

func NewSetContactField added in v0.48.0

func NewSetContactField(uuid flows.ActionUUID, field *assets.FieldReference, value string) *SetContactFieldAction

NewSetContactField creates a new set channel action

func (*SetContactFieldAction) AllowedFlowTypes added in v0.14.0

func (a *SetContactFieldAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SetContactFieldAction) Execute added in v0.6.0

func (a *SetContactFieldAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SetContactFieldAction) LocalizationUUID added in v0.48.0

func (a *SetContactFieldAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SetContactFieldAction) Type added in v0.6.0

func (a *SetContactFieldAction) Type() string

Type returns the type of this action

func (*SetContactFieldAction) UUID added in v0.48.0

func (a *SetContactFieldAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SetContactFieldAction) Validate added in v0.6.0

func (a *SetContactFieldAction) Validate() error

Validate validates our action is valid

type SetContactLanguageAction added in v0.10.0

type SetContactLanguageAction struct {
	Language string `json:"language" engine:"evaluated"`
	// contains filtered or unexported fields
}

SetContactLanguageAction can be used to update the name of the contact. The language is a localizable template and white space is trimmed from the final value. An empty string clears the language. A [event:contact_language_changed] event will be created with the corresponding value.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "set_contact_language",
  "language": "eng"
}

@action set_contact_language

func NewSetContactLanguage added in v0.48.0

func NewSetContactLanguage(uuid flows.ActionUUID, language string) *SetContactLanguageAction

NewSetContactLanguage creates a new set language action

func (*SetContactLanguageAction) AllowedFlowTypes added in v0.14.0

func (a *SetContactLanguageAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SetContactLanguageAction) Execute added in v0.10.0

func (a *SetContactLanguageAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SetContactLanguageAction) LocalizationUUID added in v0.48.0

func (a *SetContactLanguageAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SetContactLanguageAction) Type added in v0.10.0

func (a *SetContactLanguageAction) Type() string

Type returns the type of this action

func (*SetContactLanguageAction) UUID added in v0.48.0

func (a *SetContactLanguageAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SetContactLanguageAction) Validate added in v0.10.0

func (a *SetContactLanguageAction) Validate() error

Validate validates our action is valid

type SetContactNameAction added in v0.10.0

type SetContactNameAction struct {
	Name string `json:"name" engine:"evaluated"`
	// contains filtered or unexported fields
}

SetContactNameAction can be used to update the name of the contact. The name is a localizable template and white space is trimmed from the final value. An empty string clears the name. A [event:contact_name_changed] event will be created with the corresponding value.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "set_contact_name",
  "name": "Bob Smith"
}

@action set_contact_name

func NewSetContactName added in v0.48.0

func NewSetContactName(uuid flows.ActionUUID, name string) *SetContactNameAction

NewSetContactName creates a new set name action

func (*SetContactNameAction) AllowedFlowTypes added in v0.14.0

func (a *SetContactNameAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SetContactNameAction) Execute added in v0.10.0

func (a *SetContactNameAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SetContactNameAction) LocalizationUUID added in v0.48.0

func (a *SetContactNameAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SetContactNameAction) Type added in v0.10.0

func (a *SetContactNameAction) Type() string

Type returns the type of this action

func (*SetContactNameAction) UUID added in v0.48.0

func (a *SetContactNameAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SetContactNameAction) Validate added in v0.10.0

func (a *SetContactNameAction) Validate() error

Validate validates our action is valid

type SetContactTimezoneAction added in v0.10.0

type SetContactTimezoneAction struct {
	Timezone string `json:"timezone" engine:"evaluated"`
	// contains filtered or unexported fields
}

SetContactTimezoneAction can be used to update the timezone of the contact. The timezone is a localizable template and white space is trimmed from the final value. An empty string clears the timezone. A [event:contact_timezone_changed] event will be created with the corresponding value.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "set_contact_timezone",
  "timezone": "Africa/Kigali"
}

@action set_contact_timezone

func NewSetContactTimezone added in v0.48.0

func NewSetContactTimezone(uuid flows.ActionUUID, timezone string) *SetContactTimezoneAction

NewSetContactTimezone creates a new set timezone action

func (*SetContactTimezoneAction) AllowedFlowTypes added in v0.14.0

func (a *SetContactTimezoneAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SetContactTimezoneAction) Execute added in v0.10.0

func (a *SetContactTimezoneAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SetContactTimezoneAction) LocalizationUUID added in v0.48.0

func (a *SetContactTimezoneAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SetContactTimezoneAction) Type added in v0.10.0

func (a *SetContactTimezoneAction) Type() string

Type returns the type of this action

func (*SetContactTimezoneAction) UUID added in v0.48.0

func (a *SetContactTimezoneAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SetContactTimezoneAction) Validate added in v0.10.0

func (a *SetContactTimezoneAction) Validate() error

Validate validates our action is valid

type SetRunResultAction added in v0.6.0

type SetRunResultAction struct {
	Name     string `json:"name" validate:"required"`
	Value    string `json:"value" engine:"evaluated"`
	Category string `json:"category,omitempty" engine:"localized"`
	// contains filtered or unexported fields
}

SetRunResultAction can be used to save a result for a flow. The result will be available in the context for the run as @results.[name]. The optional category can be used as a way of categorizing results, this can be useful for reporting or analytics.

Both the value and category fields may be templates. A [event:run_result_changed] event will be created with the final values.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "set_run_result",
  "name": "Gender",
  "value": "m",
  "category": "Male"
}

@action set_run_result

func NewSetRunResult added in v0.48.0

func NewSetRunResult(uuid flows.ActionUUID, name string, value string, category string) *SetRunResultAction

NewSetRunResult creates a new set run result action

func (*SetRunResultAction) AllowedFlowTypes added in v0.14.0

func (a *SetRunResultAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*SetRunResultAction) Execute added in v0.6.0

func (a *SetRunResultAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs this action

func (*SetRunResultAction) LocalizationUUID added in v0.48.0

func (a *SetRunResultAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*SetRunResultAction) Results added in v0.42.0

func (a *SetRunResultAction) Results(include func(*flows.ResultInfo))

Results enumerates any results generated by this flow object

func (*SetRunResultAction) Type added in v0.6.0

func (a *SetRunResultAction) Type() string

Type returns the type of this action

func (*SetRunResultAction) UUID added in v0.48.0

func (a *SetRunResultAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*SetRunResultAction) Validate added in v0.6.0

func (a *SetRunResultAction) Validate() error

Validate validates our action is valid

type StartSessionAction added in v0.4.0

type StartSessionAction struct {
	Flow          *assets.FlowReference `json:"flow" validate:"required"`
	CreateContact bool                  `json:"create_contact,omitempty"`
	// contains filtered or unexported fields
}

StartSessionAction can be used to trigger sessions for other contacts and groups. A [event:session_triggered] event will be created and it's the responsibility of the caller to act on that by initiating a new session with the flow engine.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "start_session",
  "flow": {"uuid": "b7cf0d83-f1c9-411c-96fd-c511a4cfa86d", "name": "Registration"},
  "groups": [
    {"uuid": "1e1ce1e1-9288-4504-869e-022d1003c72a", "name": "Customers"}
  ]
}

@action start_session

func NewStartSession added in v0.48.0

func NewStartSession(uuid flows.ActionUUID, flow *assets.FlowReference, urns []urns.URN, contacts []*flows.ContactReference, groups []*assets.GroupReference, legacyVars []string, createContact bool) *StartSessionAction

NewStartSession creates a new start session action

func (*StartSessionAction) AllowedFlowTypes added in v0.14.0

func (a *StartSessionAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*StartSessionAction) Execute added in v0.4.0

func (a *StartSessionAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute runs our action

func (*StartSessionAction) LocalizationUUID added in v0.48.0

func (a *StartSessionAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*StartSessionAction) Type added in v0.4.0

func (a *StartSessionAction) Type() string

Type returns the type of this action

func (*StartSessionAction) UUID added in v0.48.0

func (a *StartSessionAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*StartSessionAction) Validate added in v0.4.0

func (a *StartSessionAction) Validate() error

Validate validates our action is valid

type Templating added in v0.32.0

type Templating struct {
	UUID      uuids.UUID                `json:"uuid" validate:"required,uuid4"`
	Template  *assets.TemplateReference `json:"template" validate:"required"`
	Variables []string                  `json:"variables" engine:"localized,evaluated"`
}

Templating represents the templating that should be used if possible

func (*Templating) LocalizationUUID added in v0.62.0

func (t *Templating) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

type TransferAirtimeAction added in v0.48.0

type TransferAirtimeAction struct {
	Amounts    map[string]decimal.Decimal `json:"amounts" validate:"required"`
	ResultName string                     `json:"result_name" validate:"required"`
	// contains filtered or unexported fields
}

TransferAirtimeAction attempts to make an airtime transfer to the contact.

An [event:airtime_transferred] event will be created if the airtime could be sent.

{
  "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
  "type": "transfer_airtime",
  "amounts": {"RWF": 500, "USD": 0.5},
  "result_name": "Reward Transfer"
}

@action transfer_airtime

func NewTransferAirtime added in v0.48.0

func NewTransferAirtime(uuid flows.ActionUUID, amounts map[string]decimal.Decimal, resultName string) *TransferAirtimeAction

NewTransferAirtime creates a new airtime transfer action

func (*TransferAirtimeAction) AllowedFlowTypes added in v0.48.0

func (a *TransferAirtimeAction) AllowedFlowTypes() []flows.FlowType

AllowedFlowTypes returns the flow types which this action is allowed to occur in

func (*TransferAirtimeAction) Execute added in v0.48.0

func (a *TransferAirtimeAction) Execute(run flows.FlowRun, step flows.Step, logModifier flows.ModifierCallback, logEvent flows.EventCallback) error

Execute executes the transfer action

func (*TransferAirtimeAction) LocalizationUUID added in v0.48.0

func (a *TransferAirtimeAction) LocalizationUUID() uuids.UUID

LocalizationUUID gets the UUID which identifies this object for localization

func (*TransferAirtimeAction) Results added in v0.52.0

func (a *TransferAirtimeAction) Results(include func(*flows.ResultInfo))

Results enumerates any results generated by this flow object

func (*TransferAirtimeAction) Type added in v0.48.0

func (a *TransferAirtimeAction) Type() string

Type returns the type of this action

func (*TransferAirtimeAction) UUID added in v0.48.0

func (a *TransferAirtimeAction) UUID() flows.ActionUUID

UUID returns the UUID of the action

func (*TransferAirtimeAction) Validate added in v0.48.0

func (a *TransferAirtimeAction) Validate() error

Validate validates our action is valid

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL