Documentation ¶
Index ¶
- Constants
- func EnsureDynamicGroups(session flows.Session, logEvent flows.EventCallback)
- func NewManual(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, ...) flows.Trigger
- func NewManualVoice(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, ...) flows.Trigger
- func NewMsg(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, ...) flows.Trigger
- func ReadTrigger(sessionAssets flows.SessionAssets, data json.RawMessage, ...) (flows.Trigger, error)
- func RegisteredTypes() map[string]ReadFunc
- type CampaignEvent
- type CampaignReference
- type CampaignTrigger
- func (t *CampaignTrigger) Batch() bool
- func (t *CampaignTrigger) Connection() *flows.Connection
- func (t *CampaignTrigger) Contact() *flows.Contact
- func (t *CampaignTrigger) Context(env envs.Environment) map[string]types.XValue
- func (t *CampaignTrigger) Environment() envs.Environment
- func (t *CampaignTrigger) Flow() *assets.FlowReference
- func (t *CampaignTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
- func (t *CampaignTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
- func (t *CampaignTrigger) MarshalJSON() ([]byte, error)
- func (t *CampaignTrigger) Params() *types.XObject
- func (t *CampaignTrigger) TriggeredOn() time.Time
- func (t *CampaignTrigger) Type() string
- type ChannelEvent
- type ChannelEventType
- type ChannelTrigger
- func (t *ChannelTrigger) Batch() bool
- func (t *ChannelTrigger) Connection() *flows.Connection
- func (t *ChannelTrigger) Contact() *flows.Contact
- func (t *ChannelTrigger) Context(env envs.Environment) map[string]types.XValue
- func (t *ChannelTrigger) Environment() envs.Environment
- func (t *ChannelTrigger) Flow() *assets.FlowReference
- func (t *ChannelTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
- func (t *ChannelTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
- func (t *ChannelTrigger) MarshalJSON() ([]byte, error)
- func (t *ChannelTrigger) Params() *types.XObject
- func (t *ChannelTrigger) TriggeredOn() time.Time
- func (t *ChannelTrigger) Type() string
- type FlowActionTrigger
- func (t *FlowActionTrigger) Batch() bool
- func (t *FlowActionTrigger) Connection() *flows.Connection
- func (t *FlowActionTrigger) Contact() *flows.Contact
- func (t *FlowActionTrigger) Context(env envs.Environment) map[string]types.XValue
- func (t *FlowActionTrigger) Environment() envs.Environment
- func (t *FlowActionTrigger) Flow() *assets.FlowReference
- func (t *FlowActionTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
- func (t *FlowActionTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
- func (t *FlowActionTrigger) MarshalJSON() ([]byte, error)
- func (t *FlowActionTrigger) Params() *types.XObject
- func (t *FlowActionTrigger) RunSummary() json.RawMessage
- func (t *FlowActionTrigger) TriggeredOn() time.Time
- func (t *FlowActionTrigger) Type() string
- type KeywordMatch
- type KeywordMatchType
- type ManualTrigger
- func (t *ManualTrigger) Batch() bool
- func (t *ManualTrigger) Connection() *flows.Connection
- func (t *ManualTrigger) Contact() *flows.Contact
- func (t *ManualTrigger) Context(env envs.Environment) map[string]types.XValue
- func (t *ManualTrigger) Environment() envs.Environment
- func (t *ManualTrigger) Flow() *assets.FlowReference
- func (t *ManualTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
- func (t *ManualTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
- func (t *ManualTrigger) MarshalJSON() ([]byte, error)
- func (t *ManualTrigger) Params() *types.XObject
- func (t *ManualTrigger) TriggeredOn() time.Time
- func (t *ManualTrigger) Type() string
- type MsgTrigger
- func (t *MsgTrigger) Batch() bool
- func (t *MsgTrigger) Connection() *flows.Connection
- func (t *MsgTrigger) Contact() *flows.Contact
- func (t *MsgTrigger) Context(env envs.Environment) map[string]types.XValue
- func (t *MsgTrigger) Environment() envs.Environment
- func (t *MsgTrigger) Flow() *assets.FlowReference
- func (t *MsgTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
- func (t *MsgTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
- func (t *MsgTrigger) MarshalJSON() ([]byte, error)
- func (t *MsgTrigger) Params() *types.XObject
- func (t *MsgTrigger) TriggeredOn() time.Time
- func (t *MsgTrigger) Type() string
- type ReadFunc
Constants ¶
const TypeCampaign string = "campaign"
TypeCampaign is the type for sessions triggered by campaign events
const TypeChannel string = "channel"
TypeChannel is the type for sessions triggered by channel events
const TypeFlowAction string = "flow_action"
TypeFlowAction is a constant for sessions triggered by flow actions in other sessions
const TypeManual string = "manual"
TypeManual is the type for manually triggered sessions
const TypeMsg string = "msg"
TypeMsg is the type for message triggered sessions
Variables ¶
This section is empty.
Functions ¶
func EnsureDynamicGroups ¶ added in v0.21.1
func EnsureDynamicGroups(session flows.Session, logEvent flows.EventCallback)
EnsureDynamicGroups ensures that our session contact is in the correct dynamic groups as as far as the engine is concerned
func NewManual ¶ added in v0.48.0
func NewManual(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, batch bool, params *types.XObject) flows.Trigger
NewManual creates a new manual trigger
func NewManualVoice ¶ added in v0.48.0
func NewManualVoice(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, connection *flows.Connection, batch bool, params *types.XObject) flows.Trigger
NewManualVoice creates a new manual trigger with a channel connection for voice
func NewMsg ¶ added in v0.48.0
func NewMsg(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, msg *flows.MsgIn, match *KeywordMatch) flows.Trigger
NewMsg creates a new message trigger
func ReadTrigger ¶
func ReadTrigger(sessionAssets flows.SessionAssets, data json.RawMessage, missing assets.MissingCallback) (flows.Trigger, error)
ReadTrigger reads a trigger from the given JSON
func RegisteredTypes ¶ added in v0.59.0
RegisteredTypes gets the registered types of trigger
Types ¶
type CampaignEvent ¶ added in v0.12.2
type CampaignEvent struct { UUID string `json:"uuid" validate:"required,uuid4"` Campaign *CampaignReference `json:"campaign" validate:"required,dive"` }
CampaignEvent describes the specific event in the campaign that triggered the session
func NewCampaignEvent ¶ added in v0.24.0
func NewCampaignEvent(uuid string, campaign *CampaignReference) *CampaignEvent
NewCampaignEvent creates a new campaign event
type CampaignReference ¶ added in v0.24.0
type CampaignReference struct { UUID string `json:"uuid" validate:"required,uuid4"` Name string `json:"name" validate:"required"` }
CampaignReference is a reference to the campaign that triggered the session
func NewCampaignReference ¶ added in v0.24.0
func NewCampaignReference(uuid, name string) *CampaignReference
NewCampaignReference creates a new campaign reference
type CampaignTrigger ¶ added in v0.12.2
type CampaignTrigger struct {
// contains filtered or unexported fields
}
CampaignTrigger is used when a session was triggered by a campaign event
{ "type": "campaign", "flow": {"uuid": "50c3706e-fedb-42c0-8eab-dda3335714b7", "name": "Registration"}, "contact": { "uuid": "9f7ede93-4b16-4692-80ad-b7dc54a1cd81", "name": "Bob", "created_on": "2018-01-01T12:00:00.000000Z" }, "event": { "uuid": "34d16dbd-476d-4b77-bac3-9f3d597848cc", "campaign": {"uuid": "58e9b092-fe42-4173-876c-ff45a14a24fe", "name": "New Mothers"} }, "triggered_on": "2000-01-01T00:00:00.000000000-00:00" }
@trigger campaign
func NewCampaign ¶ added in v0.48.0
func NewCampaign(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, event *CampaignEvent) *CampaignTrigger
NewCampaign creates a new campaign trigger with the passed in values
func (*CampaignTrigger) Connection ¶ added in v0.25.0
func (t *CampaignTrigger) Connection() *flows.Connection
func (*CampaignTrigger) Context ¶ added in v0.33.8
func (t *CampaignTrigger) Context(env envs.Environment) map[string]types.XValue
Context returns the properties available in expressions
type:text -> the type of trigger that started this session params:any -> the parameters passed to the trigger keyword:any -> the keyword match if this is a keyword trigger
@context trigger
func (*CampaignTrigger) Environment ¶ added in v0.12.2
func (t *CampaignTrigger) Environment() envs.Environment
func (*CampaignTrigger) Flow ¶ added in v0.12.2
func (t *CampaignTrigger) Flow() *assets.FlowReference
func (*CampaignTrigger) Initialize ¶ added in v0.20.0
func (t *CampaignTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
Initialize initializes the session
func (*CampaignTrigger) InitializeRun ¶ added in v0.20.0
func (t *CampaignTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
InitializeRun performs additional initialization when we create our first run
func (*CampaignTrigger) MarshalJSON ¶ added in v0.12.2
func (t *CampaignTrigger) MarshalJSON() ([]byte, error)
MarshalJSON marshals this trigger into JSON
func (*CampaignTrigger) TriggeredOn ¶ added in v0.12.2
type ChannelEvent ¶ added in v0.22.0
type ChannelEvent struct { Type ChannelEventType `json:"type" validate:"required"` Channel *assets.ChannelReference `json:"channel" validate:"required,dive"` }
ChannelEvent describes the specific event on the channel that triggered the session
func NewChannelEvent ¶ added in v0.24.0
func NewChannelEvent(typeName ChannelEventType, channel *assets.ChannelReference) *ChannelEvent
NewChannelEvent creates a new channel event
type ChannelEventType ¶ added in v0.24.0
type ChannelEventType string
ChannelEventType is the type of event that occurred on the channel
const ( ChannelEventTypeNewConversation ChannelEventType = "new_conversation" ChannelEventTypeIncomingCall ChannelEventType = "incoming_call" )
different channel event types
type ChannelTrigger ¶ added in v0.22.0
type ChannelTrigger struct {
// contains filtered or unexported fields
}
ChannelTrigger is used when a session was triggered by a channel event
{ "type": "channel", "flow": {"uuid": "50c3706e-fedb-42c0-8eab-dda3335714b7", "name": "Registration"}, "contact": { "uuid": "9f7ede93-4b16-4692-80ad-b7dc54a1cd81", "name": "Bob", "created_on": "2018-01-01T12:00:00.000000Z" }, "event": { "type": "new_conversation", "channel": {"uuid": "58e9b092-fe42-4173-876c-ff45a14a24fe", "name": "Facebook"} }, "triggered_on": "2000-01-01T00:00:00.000000000-00:00" }
@trigger channel
func NewChannel ¶ added in v0.48.0
func NewChannel(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, event *ChannelEvent, params *types.XObject) *ChannelTrigger
NewChannel creates a new channel trigger with the passed in values
func NewIncomingCall ¶ added in v0.48.0
func NewIncomingCall(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, urn urns.URN, channel *assets.ChannelReference) *ChannelTrigger
NewIncomingCall creates a new channel trigger with the passed in values
func (*ChannelTrigger) Connection ¶ added in v0.25.0
func (t *ChannelTrigger) Connection() *flows.Connection
func (*ChannelTrigger) Context ¶ added in v0.33.8
func (t *ChannelTrigger) Context(env envs.Environment) map[string]types.XValue
Context returns the properties available in expressions
type:text -> the type of trigger that started this session params:any -> the parameters passed to the trigger keyword:any -> the keyword match if this is a keyword trigger
@context trigger
func (*ChannelTrigger) Environment ¶ added in v0.22.0
func (t *ChannelTrigger) Environment() envs.Environment
func (*ChannelTrigger) Flow ¶ added in v0.22.0
func (t *ChannelTrigger) Flow() *assets.FlowReference
func (*ChannelTrigger) Initialize ¶ added in v0.22.0
func (t *ChannelTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
Initialize initializes the session
func (*ChannelTrigger) InitializeRun ¶ added in v0.22.0
func (t *ChannelTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
InitializeRun performs additional initialization when we create our first run
func (*ChannelTrigger) MarshalJSON ¶ added in v0.22.0
func (t *ChannelTrigger) MarshalJSON() ([]byte, error)
MarshalJSON marshals this trigger into JSON
func (*ChannelTrigger) TriggeredOn ¶ added in v0.22.0
type FlowActionTrigger ¶
type FlowActionTrigger struct {
// contains filtered or unexported fields
}
FlowActionTrigger is used when another session triggered this run using a trigger_flow action.
{ "type": "flow_action", "flow": {"uuid": "b7cf0d83-f1c9-411c-96fd-c511a4cfa86d", "name": "Collect Age"}, "triggered_on": "2000-01-01T00:00:00.000000000-00:00", "run_summary": { "uuid": "b7cf0d83-f1c9-411c-96fd-c511a4cfa86d", "flow": {"uuid": "50c3706e-fedb-42c0-8eab-dda3335714b7", "name": "Registration"}, "contact": { "uuid": "c59b0033-e748-4240-9d4c-e85eb6800151", "name": "Bob", "fields": {"gender": {"text": "Male"}}, "created_on": "2018-01-01T12:00:00.000000000-00:00" }, "status": "active", "results": { "age": { "result_name": "Age", "value": "33", "node": "cd2be8c4-59bc-453c-8777-dec9a80043b8", "created_on": "2018-01-01T12:00:00.000000000-00:00" } } } }
@trigger flow_action
func NewFlowAction ¶ added in v0.48.0
func NewFlowAction(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, runSummary json.RawMessage, batch bool) (*FlowActionTrigger, error)
NewFlowAction creates a new flow action trigger with the passed in values
func NewFlowActionVoice ¶ added in v0.48.0
func NewFlowActionVoice(env envs.Environment, flow *assets.FlowReference, contact *flows.Contact, connection *flows.Connection, runSummary json.RawMessage, batch bool) (*FlowActionTrigger, error)
NewFlowActionVoice creates a new flow action trigger with the passed in values
func (*FlowActionTrigger) Connection ¶ added in v0.25.0
func (t *FlowActionTrigger) Connection() *flows.Connection
func (*FlowActionTrigger) Context ¶ added in v0.33.8
func (t *FlowActionTrigger) Context(env envs.Environment) map[string]types.XValue
Context returns the properties available in expressions
type:text -> the type of trigger that started this session params:any -> the parameters passed to the trigger keyword:any -> the keyword match if this is a keyword trigger
@context trigger
func (*FlowActionTrigger) Environment ¶ added in v0.5.0
func (t *FlowActionTrigger) Environment() envs.Environment
func (*FlowActionTrigger) Flow ¶
func (t *FlowActionTrigger) Flow() *assets.FlowReference
func (*FlowActionTrigger) Initialize ¶ added in v0.20.0
func (t *FlowActionTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
Initialize initializes the session
func (*FlowActionTrigger) InitializeRun ¶ added in v0.20.0
func (t *FlowActionTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
InitializeRun performs additional initialization when we create our first run
func (*FlowActionTrigger) MarshalJSON ¶
func (t *FlowActionTrigger) MarshalJSON() ([]byte, error)
MarshalJSON marshals this trigger into JSON
func (*FlowActionTrigger) RunSummary ¶ added in v0.24.0
func (t *FlowActionTrigger) RunSummary() json.RawMessage
RunSummary returns the summary of the run that triggered this session
func (*FlowActionTrigger) TriggeredOn ¶
type KeywordMatch ¶ added in v0.20.0
type KeywordMatch struct { Type KeywordMatchType `json:"type" validate:"required"` Keyword string `json:"keyword" validate:"required"` }
KeywordMatch describes why the message triggered a session
func NewKeywordMatch ¶ added in v0.24.0
func NewKeywordMatch(typeName KeywordMatchType, keyword string) *KeywordMatch
NewKeywordMatch creates a new keyword match
type KeywordMatchType ¶ added in v0.20.0
type KeywordMatchType string
KeywordMatchType describes how the message matched a keyword
const ( KeywordMatchTypeFirstWord KeywordMatchType = "first_word" KeywordMatchTypeOnlyWord KeywordMatchType = "only_word" )
the different types of keyword match
type ManualTrigger ¶
type ManualTrigger struct {
// contains filtered or unexported fields
}
ManualTrigger is used when a session was triggered manually by a user
{ "type": "manual", "flow": {"uuid": "50c3706e-fedb-42c0-8eab-dda3335714b7", "name": "Registration"}, "contact": { "uuid": "9f7ede93-4b16-4692-80ad-b7dc54a1cd81", "name": "Bob", "created_on": "2018-01-01T12:00:00.000000Z" }, "triggered_on": "2000-01-01T00:00:00.000000000-00:00" }
@trigger manual
func (*ManualTrigger) Connection ¶ added in v0.25.0
func (t *ManualTrigger) Connection() *flows.Connection
func (*ManualTrigger) Context ¶ added in v0.33.8
func (t *ManualTrigger) Context(env envs.Environment) map[string]types.XValue
Context for manual triggers always has non-nil params
func (*ManualTrigger) Environment ¶ added in v0.5.0
func (t *ManualTrigger) Environment() envs.Environment
func (*ManualTrigger) Flow ¶
func (t *ManualTrigger) Flow() *assets.FlowReference
func (*ManualTrigger) Initialize ¶ added in v0.20.0
func (t *ManualTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
Initialize initializes the session
func (*ManualTrigger) InitializeRun ¶ added in v0.20.0
func (t *ManualTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
InitializeRun performs additional initialization when we create our first run
func (*ManualTrigger) MarshalJSON ¶
func (t *ManualTrigger) MarshalJSON() ([]byte, error)
MarshalJSON marshals this trigger into JSON
func (*ManualTrigger) TriggeredOn ¶
type MsgTrigger ¶ added in v0.20.0
type MsgTrigger struct {
// contains filtered or unexported fields
}
MsgTrigger is used when a session was triggered by a message being received by the caller
{ "type": "msg", "flow": {"uuid": "50c3706e-fedb-42c0-8eab-dda3335714b7", "name": "Registration"}, "contact": { "uuid": "9f7ede93-4b16-4692-80ad-b7dc54a1cd81", "name": "Bob", "created_on": "2018-01-01T12:00:00.000000Z" }, "msg": { "uuid": "2d611e17-fb22-457f-b802-b8f7ec5cda5b", "channel": {"uuid": "61602f3e-f603-4c70-8a8f-c477505bf4bf", "name": "Twilio"}, "urn": "tel:+12065551212", "text": "hi there", "attachments": ["https://s3.amazon.com/mybucket/attachment.jpg"] }, "keyword_match": { "type": "first_word", "keyword": "start" }, "triggered_on": "2000-01-01T00:00:00.000000000-00:00" }
@trigger msg
func (*MsgTrigger) Connection ¶ added in v0.25.0
func (t *MsgTrigger) Connection() *flows.Connection
func (*MsgTrigger) Context ¶ added in v0.33.8
func (t *MsgTrigger) Context(env envs.Environment) map[string]types.XValue
Context for msg triggers additionally exposes the keyword match
func (*MsgTrigger) Environment ¶ added in v0.20.0
func (t *MsgTrigger) Environment() envs.Environment
func (*MsgTrigger) Flow ¶ added in v0.20.0
func (t *MsgTrigger) Flow() *assets.FlowReference
func (*MsgTrigger) Initialize ¶ added in v0.20.0
func (t *MsgTrigger) Initialize(session flows.Session, logEvent flows.EventCallback) error
Initialize initializes the session
func (*MsgTrigger) InitializeRun ¶ added in v0.20.0
func (t *MsgTrigger) InitializeRun(run flows.FlowRun, logEvent flows.EventCallback) error
InitializeRun performs additional initialization when we visit our first node
func (*MsgTrigger) MarshalJSON ¶ added in v0.20.0
func (t *MsgTrigger) MarshalJSON() ([]byte, error)
MarshalJSON marshals this trigger into JSON
func (*MsgTrigger) TriggeredOn ¶ added in v0.20.0
type ReadFunc ¶ added in v0.59.0
type ReadFunc func(flows.SessionAssets, json.RawMessage, assets.MissingCallback) (flows.Trigger, error)
ReadFunc is a function that can read a trigger from JSON