Signals¶
Signals are events with a specific name. Signals are broadcasted globally, they are not limited by a process scope. It means that a signal triggered in one BPM process can be caught in another process.
The signals feature is a part of Advanced Pack extension and can be utilized in BPM and Workflows tools.
How signals are broadcasted:
- There are set of standard signals which are broadcasted upon specific events in the application. These built-in signals are listed below in the article.
- It's possible to broadcast custom signals in a BPM process.
- It's possible to broadcast custom signals using the formula function
bpm\broadcastSignal(SIGNAL_NAME)
(as of v2.7.1). - It's possible to broadcast custom signals via PHP code.
There are two types of signals:
- Regular signals
- Object signals
In this article:
Regular signals¶
- Can be broadcasted and caught within a running process.
- Can't be used to start a process or workflow rule.
Note: Signal Intermediate Events can catch and throw regular signals (in BPM process).
Built-in signals¶
The list of out-of-the-box signals that are broadcasted in the system.
Note: Parts in upper case (ENTITY_TYPE, ID, LINK_NAME, etc.) must be replaced by corresponding values. E.g. when an account with ID = aabbcc
is updated, a signal update.Account.aabbcc
is broadcasted.
Default¶
create.ENTITY_TYPE
– record of ENTITY_TYPE created, e.g.create.Lead
update.ENTITY_TYPE.ID
– record update, e.g.update.Lead.aaabbbccc007
delete.ENTITY_TYPE.ID
– record removedrelate.ENTITY_TYPE.ID.LINK_NAME
– record related with another record (only for many-to-many)relate.ENTITY_TYPE.ID.LINK_NAME.FOREIGN_ID
– record related with another record, id of related recod is specified (only for many-to-many)unrelate.ENTITY_TYPE.ID.LINK_NAME
– record unrelated from another record (only for many-to-many)unrelate.ENTITY_TYPE.ID.LINK_NAME.FOREIGN_ID
– (only for many-to-many)createRelated.ENTITY_TYPE.ID.LINK_NAME
– created related record, one-to-many relationship, e.g. Opportunity created for AccountcreateChild.ENTITY_TYPE.ID.CHILD_ENTITY_TYPE
– when created a record related through parent, e.g. Meeting created for AccountstreamPost.ENTITY_TYPE.ID
– when somebody posted in stream
Contacts/Leads¶
leadCapture.ENTITY_TYPE.ID
– when lead (or contact) is processed through Lead Capture (confirmed opt-in if it's enabled)leadCapture.ENTITY_TYPE.ID.LEAD_CAPTURE_ID
– the same, but id of Lead Capture record is specifiedoptOut.ENTITY_TYPE.ID
– person opted-outoptOut.ENTITY_TYPE.ID.TARGET_LIST_ID
– person opted-out from specific target listcancelOptOut.ENTITY_TYPE.ID
– person opted-in againcancelOptOut.ENTITY_TYPE.ID.TARGET_LIST_ID
eventAccepted.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE
– person accepted meeting/call invitationeventAccepted.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID
– person accepted meeting/call invitation, event id is specifiedeventTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE
– person set Tentative status in meeting/call invitationeventTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID
eventAcceptedTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE
– person set Accepted or Tentative status in meeting/call invitationeventAcceptedTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID
eventDeclined.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE
– person declined meeting/call invitationeventDeclined.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID
Contacts/Leads/Accounts/Users¶
clickUrl.ENTITY_TYPE.ID
– recipient opened a tracking url , see hereclickUrl.ENTITY_TYPE.ID.CAMPAIGN_TRACKING_URL_ID
– recipient opened a specfic tracking url
Other¶
clickUniqueUrl.UNIQUE_ID
– recipient opened a tracking url with unique ID, see here
Placeholders¶
You can use placeholders when you define a signal name that will be broadcasted by the throwing event in the BPM process.
{$attribute}
– attribute of target record{$$variable}
– formula variable
E.g. mySignal.{$status}.{$id}
– type and id are attributes of the target record. Placeholders will be replaced with attribute values, so the actual signal name will look like mySigal.New.someIdValue
.
Object signals¶
- Broadcasted along with the entity (record).
- Prefixed with
@
character. - Can be used only to initiate a new process or workflow rule.
- Can't be caught within a running process.
- Can be broadcasted by a running process.
Note: Signal Intermediate Event (Catching) can't catch object signals.
Example: A process triggers signal @approve. A target record of Lead entity type is attached to the signal. You have another BPM flowchart for Lead entity type that starts with @approve signal. In this case, a new process will be started, and lead record from the first process will be passed as a target record of the second process.
Built-in signals¶
The list of out-of-the-box signals that are broadcasted in the system.
Note: Parts in upper case (LINK_NAME, FOREIGN_ID, etc.) will/should be replaced by corresponding values.
Default¶
@create
– record created@update
– record updated@delete
– record removed@relate.LINK_NAME
– record related with another record@relate.LINK_NAME.FOREIGN_ID
– record related with another record, id of related recod is specified@unrelate.LINK_NAME
– record unrelated from another record@unrelate.LINK_NAME.FOREIGN_ID
Contacts/Leads:¶
@leadCapture
– when lead (or contact) is processed through Lead Capture (confirmed opt-in if it's enabled)@leadCapture.LEAD_CAPTURE_ID
@optOut
– person opted-out@optOut.TARGET_LIST_ID
– person opted-out from specific target list@cancelOptOut
– person opted-in again@cancelOptOut.TARGET_LIST_ID
Contacts/Leads/Accounts/Users¶
@clickUrl
– recipient opened a tracking url@clickUrl.CAMPAIGN_TRACKING_URL_ID
– recipient opened a specfic tracking url
Naming clarification¶
- ID – ID of a record that you can obtain from the browser address bar
- ENTITY_TYPE – entity type of the record (not translated), you can obtain it at Administration > Entity Manager
- LINK_NAME – relation name, you can obtain it at Administration > Entity Manager
- FOREIGN_ID – ID of a related record