Documentation
¶
Index ¶
- Constants
- func EnsureDynamicGroups(session flows.Session, logEvent flows.EventCallback)
- func NewManualTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, ...) flows.Trigger
- func NewManualVoiceTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, ...) flows.Trigger
- func NewMsgTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, ...) flows.Trigger
- func ReadTrigger(sessionAssets flows.SessionAssets, data json.RawMessage, ...) (flows.Trigger, error)
- func RegisterType(name string, f readFunc)
- type CampaignEvent
- type CampaignReference
- type CampaignTrigger
- func (t *CampaignTrigger) Connection() *flows.Connection
- func (t *CampaignTrigger) Contact() *flows.Contact
- func (t *CampaignTrigger) Context(env utils.Environment) map[string]types.XValue
- func (t *CampaignTrigger) Environment() utils.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.XValue
- func (t *CampaignTrigger) TriggeredOn() time.Time
- func (t *CampaignTrigger) Type() string
- type ChannelEvent
- type ChannelEventType
- type ChannelTrigger
- func (t *ChannelTrigger) Connection() *flows.Connection
- func (t *ChannelTrigger) Contact() *flows.Contact
- func (t *ChannelTrigger) Context(env utils.Environment) map[string]types.XValue
- func (t *ChannelTrigger) Environment() utils.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.XValue
- func (t *ChannelTrigger) TriggeredOn() time.Time
- func (t *ChannelTrigger) Type() string
- type FlowActionTrigger
- func (t *FlowActionTrigger) Connection() *flows.Connection
- func (t *FlowActionTrigger) Contact() *flows.Contact
- func (t *FlowActionTrigger) Context(env utils.Environment) map[string]types.XValue
- func (t *FlowActionTrigger) Environment() utils.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.XValue
- 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) Connection() *flows.Connection
- func (t *ManualTrigger) Contact() *flows.Contact
- func (t *ManualTrigger) Context(env utils.Environment) map[string]types.XValue
- func (t *ManualTrigger) Environment() utils.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.XValue
- func (t *ManualTrigger) TriggeredOn() time.Time
- func (t *ManualTrigger) Type() string
- type MsgTrigger
- func (t *MsgTrigger) Connection() *flows.Connection
- func (t *MsgTrigger) Contact() *flows.Contact
- func (t *MsgTrigger) Context(env utils.Environment) map[string]types.XValue
- func (t *MsgTrigger) Environment() utils.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.XValue
- func (t *MsgTrigger) TriggeredOn() time.Time
- func (t *MsgTrigger) Type() string
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 NewManualTrigger ¶
func NewManualTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, params types.XValue) flows.Trigger
NewManualTrigger creates a new manual trigger
func NewManualVoiceTrigger ¶ added in v0.25.2
func NewManualVoiceTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, connection *flows.Connection, params types.XValue) flows.Trigger
NewManualVoiceTrigger creates a new manual trigger with a channel connection for voice
func NewMsgTrigger ¶ added in v0.20.0
func NewMsgTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, msg *flows.MsgIn, match *KeywordMatch) flows.Trigger
NewMsgTrigger 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 RegisterType ¶ added in v0.11.0
func RegisterType(name string, f readFunc)
RegisterType registers a new type 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 NewCampaignTrigger ¶ added in v0.14.4
func NewCampaignTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, event *CampaignEvent) *CampaignTrigger
NewCampaignTrigger 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 utils.Environment) map[string]types.XValue
Context returns the properties available in expressions
func (*CampaignTrigger) Environment ¶ added in v0.12.2
func (t *CampaignTrigger) Environment() utils.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 occured 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 NewChannelTrigger ¶ added in v0.22.0
func NewChannelTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, event *ChannelEvent, params types.XValue) *ChannelTrigger
NewChannelTrigger creates a new channel trigger with the passed in values
func NewIncomingCallTrigger ¶ added in v0.25.2
func NewIncomingCallTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, urn urns.URN, channel *assets.ChannelReference) *ChannelTrigger
NewIncomingCallTrigger 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 utils.Environment) map[string]types.XValue
Context returns the properties available in expressions
func (*ChannelTrigger) Environment ¶ added in v0.22.0
func (t *ChannelTrigger) Environment() utils.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 NewFlowActionTrigger ¶ added in v0.24.0
func NewFlowActionTrigger(env utils.Environment, flow *assets.FlowReference, contact *flows.Contact, runSummary json.RawMessage) *FlowActionTrigger
NewFlowActionTrigger 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 utils.Environment) map[string]types.XValue
Context returns the properties available in expressions
func (*FlowActionTrigger) Environment ¶ added in v0.5.0
func (t *FlowActionTrigger) Environment() utils.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 utils.Environment) map[string]types.XValue
Context returns the properties available in expressions
func (*ManualTrigger) Environment ¶ added in v0.5.0
func (t *ManualTrigger) Environment() utils.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 recieved 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 utils.Environment) map[string]types.XValue
Context returns the properties available in expressions
func (*MsgTrigger) Environment ¶ added in v0.20.0
func (t *MsgTrigger) Environment() utils.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