Skip to content

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) (since 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 removed
  • relate.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 Account
  • createChild.ENTITY_TYPE.ID.CHILD_ENTITY_TYPE – when created a record related through parent, e.g. Meeting created for Account
  • streamPost.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 specified
  • optOut.ENTITY_TYPE.ID – person opted-out
  • optOut.ENTITY_TYPE.ID.TARGET_LIST_ID – person opted-out from specific target list
  • cancelOptOut.ENTITY_TYPE.ID – person opted-in again
  • cancelOptOut.ENTITY_TYPE.ID.TARGET_LIST_ID
  • eventAccepted.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE – person accepted meeting/call invitation
  • eventAccepted.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID – person accepted meeting/call invitation, event id is specified
  • eventTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE – person set Tentative status in meeting/call invitation
  • eventTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID
  • eventAcceptedTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE – person set Accepted or Tentative status in meeting/call invitation
  • eventAcceptedTentative.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID
  • eventDeclined.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE – person declined meeting/call invitation
  • eventDeclined.ENTITY_TYPE.ID.EVENT_ENTITY_TYPE.EVENT_ID

Contacts/Leads/Accounts/Users

  • clickUrl.ENTITY_TYPE.ID – recipient opened a tracking url , see here
  • clickUrl.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 by caught withing 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