Modifying an existing target list


I want to search an existing target list and remove targets based on for example the state they are located.

Is the correct process to create target lists from scratch and delete target lists.

Only way I see how to remove targets from a target list is to find each one by scrolling through the list of targets in a target list and then selecting remove.

When I go to the targets screen their is no indication what target lists they belong to.

Any assistance would be appreciated.


You can only associate/unassociate via the subpanels on the Target List record by default.



Its really a pity !!! i’ve a set of target list and after sending campaign i have to move (or remove) some records from target list … is not so easy to find a record if few use more than one list at time for marketing campaign.

Any news or solution to solve the problem?

Regards, Massimo.

You can probably achieve it with aworkflow, but it is not out of the box.

I have developed some code to do it in the following way:

  1. When in Accounts List view
    After a search, with the selected items
    . add accounts to target list
    . remove accounts from target list (it doesn’t matter if the account is or is not in the target list: it will remove it if found)
    . add contacts related to accounts using the standard relationship
    . remove contacts related to accounts using the standard relationship
    . add contacts related to accounts using all other custom relationships
    . remove contacts related to accounts using all other custom relationships
    . some combinations of the above

  2. When in Contacts List view
    After a search, with the selected items
    . add contacts to target list
    . remove contacts from target list (it doesn’t matter if the account is or is not in the target list: it will remove it if found)
    . add contacts related to contacts using the standard relationship
    . remove accounts related to contacts using the standard relationship
    . add accounts related to contacts using all other custom relationships
    . remove accounts related to contacts using all other custom relationships
    . some combinations of the above

I have also created a specific config page in order to decide which option goes in the menu. It would be nice to have an admin page.

All tested and working fine so far.

I have tried to pack this in an installable module but there are some issues and I haven’t had the time to finalise it.

It would be nice to add all this code to the standard product and also add an administration section to allow each user select what he wants (if all options are enabled, the dropdown menu in the search result list view is quite long, but understandale).

Initially we wanted to make it a paid plug-in but we decided it would be better to have it inserted in the standard product. To do this we need some help to finalise some details. If someone wants it I can just share it as it is with a waiver of responsibility in case something goes wrong.

Hi. Thank you for your answer and solution. I am newbee to CRM process … it seems to me more clear the process on … have target list … convert target in lead (as suitecrm does) convert lead in account and contacts (as suitecrm does) … but the needs you realize is nice to have too.

when i have a target list of not well known target … its fundamental that working on targets for recall (for example after campaign)can move those targets in correct lists to reuse them in future campaigns.

I think that list from contacts and accounts woulbe better created by filtering on some properties related on this two entities.


I am sorry but from your latest post I think I don’t understand your requirement.

Are you talking about Targets or Target Lists. They are not the same thing.

My previous post as well as Will’s answer were directed to Target Lists (and not Targets).

Sorry for my bad english …

Yes … i’m talking about Targets … that are contained in target lists …

Sometimes we obtain targets list from our colleagues and those lists always are not “pure” … so when we work on these lists recalling targets we want move targets on another list for qualifying reasons…

i hope that my explanation is clear …

Sorry but I still do not understand. It is difficult since Targets and Target Lists are similar.

If you refer to a Selection of Targets, maybe, if you use “Selection of Targets” instead of Target list, your explanation becomes understandable.

In any case here is a suggestion:

  1. Create a custom field called target_source in the Targets module (Admin->Studio->Fields->Add field)
  2. Add this new field to the Edit View as well as to the Detail View of Targets (Admin->Studio->Views->Edit View and Admin->Studio->Views->Detail View)
  3. Before you import your targets add a column to your csv source file with the new field and, to all the records of your csv file assign a value to this field so that you can recognise them later in the CRM

In this way, imagine you have 100 new Targets coming from Friend01 on July 15, 2016. In that field you could put the value: 20160715_Friend01
When you have imported them you can go to Targets and search for the value 20160715_Friend01 in the field target_source (to be able to do so, however you should also add the field in Studio to the search form).

At this point your Targets will not be mixed up.

Additionaly you could create another field: a check box specifying whether it has been qualified or not. At this point, when one Target is qualified, the operator who has qualified it has to select that checkbox in the edit view of the Target and when you search you can chose to select the qualified or not qualified Targets from a specific target_source.

I hope this helps.

@amariussi your post above mentioning all the developments you’d be willing to contribute to the project look quite valuable! They really expand the ways in which Target Lists can be created and added to.

I’m not sure how SalesAgility would prefer to have this done in Github, but I suppose you could create a PR with the code that you have, while clearly stating that it is incomplete and listing what is left to be solved / done. Then further commits could be added to a clone of that PR to bring it to a state where it could be merged.

An alternative would be to just make a new public branch in your own Github, and create an issue in SuiteCRM’s Github announcing the new features and pointing to that code, so that others could work with it.

And thanks for your work and your willingness to contribute!

Hi. Thank you. You showed a good solution. I’ve just added in past a field to targets … so it will simple for me to realize it.

For me targets and targets list are clear … a target list is a set of targets: am i wrong?

Regards, Massimo.

A Target List is not a list of Targets.

A Target List is a module of its own (which programmatically is called Prospect List). Target Lists are used to collect various types of items from Accounts, Contacts, Targets, Leads and Users for use elsewhere in the CRM. For example in Campaigns. So, imagine you are launching a Campaign and you want to send an invitation to all of the above categories you can create a Target list that groups all of those to whom you are interested to send the invitation, irrespective to their module (as I said Accounts, Contacts, Targets, Leads and Users).

On the other hand Targets is another module in which you collect all sorts of individuals who are not assigned to any account present in the CRM (in fact there is a field called Account but it is only a text field and not a link to a real Account. This may create some confusion). Targets are useful if you don’t wan’t to mix Accounts and Contacts that are already clients with those that are not clients.

OK. I have worked today to clean the code and make it compatible with SuiteCRM 7.7 Beta 2. Once tested I will issue a pull request with the modifications and explanations of what it does and what it needs to be perfect. However the code I am going to add is already working and sufficient.

1 Like

Hi Karma. Prospects or Targets are entities that live alone as contact and leads.

In Suitecrm you can create a Target list of contacts or Leads, or Account or from Targets.

So if you import a list of names from file probably those elements contained are not profiled ( maybe nobody contacts them before) and importing directly in contacts or leads (or other entities) doesn’t assure you that the contacts links (email, phone, address …) are existing or correct. I prefer to leave these names in target list and then converting them in leads when something happen.

This records could be leads candidates and they could becoming interesting for your CRM after a marketing campaign: they could react at your PUSH action (for example registering in your site or replying at an email).

A name not contactable is not interesting and i don’t want it in my contacts entity: i move it directly in a target list of wrong link (i don’t delete they cause i can retrieve again in a future target list).

For me the correct process for a name is: target --> ,lead —> contacts . SuiteCRM has just this function to convert a target in lead and a lead in contact.

This is why i think that a move (or remove or even copy) of target from list to another is important.

Thank you for this discussion. For me its important to understand well this CRM fundamentals.
Regards, Massimo.

I am also adding the possibility to add/remove “colleagues” (other contacts from the same account to which a contact belongs) for both the standard relationship between contacts and accounts as well as (as a separate option) for other custom relationships whose name was created by Studio.

That sounds great!

If I understand correctly, the greatest design challenge is how to include so many options in one menu.

It seems your approach was to have a configuration section where these options can be turned on or off.

But another possibility I would like to suggest is to have a single menu option (“Advanced add”) or something, and that would open a pop-up window with all the options. This could be similar to the current “Add dashlets” dialog box on the main page.

What do you think of this idea?

For the time being I want to finalise it in the dropdown menu. If all options are enabled it is ugly, yu are right (but useful). I agree. However, if one turns off combinations he can still do everything by just executing each option singularly.

Next I will study the pop-up Advanced Add To Target List because I would like to develop it using the standard way of doing it with SuiteCRM, but I still have not figured out completely how to achieve it.

1 Like

How stupid i am … i call you amariussi … “karma”

Well this confirm that i’m really a newbie of this community … and in other too


@amariussi this is just a friendly reminder about that code you wanted to contribute : - )

If you can find the time to finish it, it would be quite a valuable contribution to SuiteCRM. Thanks!

I am sorry but I haven’t had the time to finish it. And it is close to be published.

Could anyone help me finalise it?

I can share here a (maybe partially) working version here and explain what I think should be done to finish it.

I’m about to start a complicated professional period involving two long travels and a lot of work in between, so I’m afraid I can’t offer myself.

I don’t know if this could be a good option: upload the code on a personal Github account and open the PullRequest into the salesagilty/SuiteCRM repository (“develop” branch, I think). On that PR, clearly state that the code is incomplete and help is needed.

Then other people can go into your personal Github account and push more commits to complete the code. When it is finished it can be pulled into salesagility for release. Basically, personal repositiories also allow collaborative work.

This might get the attention of more developers, people active on Github, even SalesAgility employees (they might appreciate the new feature, and have extra skills to complete it with ease), and get them to collaborate.