Call campaigns / Intelligently mass create call records via SugarBPM

Hello Sugar Lovers!

I've recently worked on a request that I've had several times: allow teams to manage outbound call campaigns. 


An account list is prepared based on a report (eg. complex criteria). Users need to track who they called, who they have to, when they would need to call back...

Solution found: 

I've created a simple BPM that: 

  1. Starts when a target list is linked to an account AND that TL has the "Prospection" type
  2. Creates a related call

So the manager creates a TL, selects accounts from a report and calls are created. Calls are shown on a simple dashboard, then the focus drawer does its magic. 


Current limitations: 

Managing campaign sub segments requires manually adapting the BPM to give a special subjet to the calls. If the segments are more complex than a filed I canfind on the account, I would have loved to inject the Target list name in the Call Subject. However AFAIK it is not possible because it's a many-to-many relationship and SugarBPM does not have access to the Target list name/id that triggered the call. 

Maybe you've solved this otherwise? 

I've already ruled out: 

  1. Code: because I wanted a no-code solution, otherwise I'm certain we could develop a hook that would replace the BPM or extend the BPM
  2. Action button: because action buttons cannot be used in "mass" scenarios (that would be fantastic BTW)

Thanks for your input :)



  • Hey Damien,

    We would try drawing an algorithm on the fly with the Logic Builder tool to include it into BPM Process Definition covering the gap - that should take perhaps up to an hour
    But not sure whether this approach is ruled out or not - for me such a solution is obviously a no-code approach for implementing Sugar tasks because I don't have Sugar coding skills

    Best Regards,
    Dmytro Chupylka
    We make work in Sugar CRM system faster, more convenient and efficient

  • Hey Dmytro,

    Thanks for your suggestion! Having seen demos of Logic Builder I know how powerfull it is :) However at this stage this customer would like to avoid additional plugins/platforms so I'm looking for a solution with built-in tools. Or dev if it cannot be avoided. 



    Damien Pochon

    CRM & Digital consultant @ ITS4U Group

  • I see - what I've just learned from SugarBPM Process definition  on Relationship Change (relationship added in the task articulated ) is that the Process Definition does not expose both records involved into that relationship added, so it is ether TL or Account available - never both, so doubts that efforts to combine data from both records involved  (to create a Call related to Account and simultaneously AND  set call's subject that includes TL name)  could be fruitful

    It means that even if we include the Logic Builder designed algorithm with proper call naming logic into the Process Definition , there is not enough data in the Process Definitions to parameterize that algorithm

    At the same time, it's easy to create the call record with a logic hook on after_relationship_add

    Best Regards,
    Dmytro Chupylka
    We make work in Sugar CRM system faster, more convenient and efficient

  • That's my take on the topic :)

    This made me think that the SugarBPM action has the option to create grand children, so I tried a BPM that is based on the target list and create grand children. 

    It should be working, but am getting an error: "Data does not currently exist in the system: Module relationship". Weird message... 

    Any idea? 

    Damien Pochon

    CRM & Digital consultant @ ITS4U Group

  • No need to subscribe to Logic Builder to solve no-code the one-time task :)

    I've set up a logic hook that I suppose does the requested and put call parameters into the specific Note with particular subject  - that trick allows to keep the logic hook parametrizable via the Sugar interface via editing that Note [3 minutes watch]

    Three steps to make that work on your customer's instance (or sandbox):

    1. Ensure ProspectLists (TL) module is visible, and there is a Prospection type available in the TL type dropdown list

    2. Install logic hook with Module loader

    3. Create a Note in Sugar with the subject = CALL GENERATION PARAMETERS and put call parameters into the description in a form of the simple JSON

    Such a call's parameters could be adjusted anytime by editing the Notes description

    ScheduleInXdays - stands for the Start date of the call to set in X days from today
    CallSubject - is a subject for the call, where [TL_name] will be substituted by logic hook to the TL name on Call creation
    CallDescription - write an imperative for the call there, logic hook will use it for Call's Invitation Body (description)

    Let me know if you need anything to adjust in the implementation - I'd be happy to make it

    If curious about the logic hook drawing, here it is (enlarge and follow the white line to read):
    - the first step is the criterion for run
    - the second step is actually reading parameters from the note
    - the third step is to create a call record

    Best Regards,
    Dmytro Chupylka
    We make work in Sugar CRM system faster, more convenient and efficient

  • frankly, never tried to create grandchildren with BPM because of data population for grandchildren records via filtering looks fairly uneasy (IMHO) ...
    anyway, I trust the context of initial TL is not available (lost) in the Process Definition - but that is worth at least trying

    Best Regards,
    Dmytro Chupylka
    We make work in Sugar CRM system faster, more convenient and efficient