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

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

Try AutomaticERP for free

Automated system for company management

Do you want to receive news from the world of corporate systems, technical news and data? Send us your email and we will send you a newsletter.

Demo AutoCRM

Our team of consultants will guide you through the process of deploying AutoCRM in your company.