I developed a civicrm module (CiviCRM Phone Campaigns) that creates "campaign phone calls" activities, when I create a Phone Campaign, for each target contact in the campaign.
Actually, there are only mail campaigns in civicrm (Mailings), but sometimes we need to do special recovery campaigns like one-to-one marketing or relational marketing instead of massive campaigns. For this is CiviCRM Phone Campaigns.
| Comment | File | Size | Author |
|---|---|---|---|
| #17 | civicrm_phonecampaign.tar_.gz | 2.07 KB | Manonline |
| #16 | civicrm_phonecampaign.tar_.gz | 2.09 KB | Manonline |
| #14 | civicrm_phonecampaign.tar_.gz | 2.16 KB | Manonline |
| #9 | civicrm_phonecampaign.tar_.gz | 2.16 KB | Manonline |
| #1 | civicrm_phonecampaign.tar_.gz | 2.17 KB | Manonline |
Comments
Comment #1
Manonline commentedOh, the project includes a patch to apply to the CiviCRM core, because the hook_civicrm_post wasn't called. Here is the bug report: http://issues.civicrm.org/jira/browse/CRM-6271.
The patch add the line who calls the hook.
Comment #2
avpadernoHello, and thanks for applying for a CVS account. I am adding the review tags, and some volunteers will review your code, pointing out what needs to be changed.
As per http://drupal.org/cvs-application/requirements, the motivation message should be expanded to contain more details about the features of the proposed module/theme; for modules it should include also a comparison with the existing solutions, while for themes a screenshot is also required.
Comment #3
Manonline commentedFirst sorry for my english, I'll try to explain it with my basic English :)
There aren't an other module with this functionality or similar.
When a company wants to recover the contact with one or more clients, the best way isn't a mailing, because you must maintain a relationship with them. Or you just want to do a direct marketing campaign to a specific sector with a major responsiveness.
With CiviCRM you can do a recovery campaign via mail using de CiviMail Component, but it isn't the best way to resume the contact with an old client.
You can create an activity with all contacts you want, but you can't track each contact activity.
This module provides two activity types: "Phone Campaign" and "Campaign Phone Call". The Phone Campaign is the header activity of the campaign and you must create it with all target contacts you want to recover contact. This will create an activity (Campaign Phone Call) for each contact, letting you to track them individually.
Basically, CiviCRM Phone Campaigns provides a way to do personal recovery campaigns or direct marketing campaigns.
I have plans to provide a block listings campaigns and their statuses. Probably a dashlet to place it in the CiviCRM dashboard.
Comment #4
avpadernoThanks for the reply.
Comment #5
Manonline commentedFirst sorry for my english, I'll try to explain it with my basic English :)
There aren't an other module with this functionality or similar.
When a company wants to recover the contact with one or more clients, the best way isn't a mailing, because you must maintain a relationship with them. Or you just want to do a direct marketing campaign to a specific sector with a major responsiveness.
With CiviCRM you can do a recovery campaign via mail using de CiviMail Component, but it isn't the best way to resume the contact with an old client.
You can create an activity with all contacts you want, but you can't track each contact activity.
This module provides two activity types: "Phone Campaign" and "Campaign Phone Call". The Phone Campaign is the header activity of the campaign and you must create it with all target contacts you want to recover contact. This will create an activity (Campaign Phone Call) for each contact, letting you to track them individually.
Basically, CiviCRM Phone Campaigns provides a way to do personal recovery campaigns or direct marketing campaigns.
I have plans to provide a block listings campaigns and their statuses. Probably a dashlet to place it in the CiviCRM dashboard.
Comment #6
Manonline commentedthere are news about my cvs account application?
thanks :)
Comment #7
Manonline commentedpinging :)
Comment #8
dagmarSome comments about your module:
You need to follow the Coding Standards
Needs a space between if and (.
For arrays you should use two spaces: http://drupal.org/coding-standards#array
And probably (I'm not sure, but probably yes...) you have to enclose the strings, label and description, into t().
Don't include the version in the info file
And related to the patch attached. You should post this patch in the CiviCRM module explaining why it should be committed.
Comment #9
Manonline commentedThanks for your comments.
Here is the reviewed module with the correct indentation and spaces.
I had created a sub-task in the CiviCRM's issue tracker for http://issues.civicrm.org/jira/browse/CRM-6271.
changing status to need review
Comment #10
Manonline commentedthe patch is now approved and it will be included in next releases.
Comment #11
Manonline commentedany update?
I made a new module, a dbFM (Data Base File Manager) mapper (dbfm_mapper) for Feeds, and I want to contribute with that module too.
Comment #12
dagmarThere are still some issue with the Coding Standars
All headers for functions like:
Should be:
Should enclose civicrm_activity in { } and id=%d should have spaces
This code:
Should be
Related to:
This is wrong. There is not such archive into your module, and therefore will never be included. Take a look to http://api.drupal.org/api/function/module_load_include or provide some documentation about how this file have to be included.
It would be nice to see a bit more of documentation about what this module does. Comments do not hurts :)
Also, the .info file is corrupted, I cannot review it, please attach it again.
If you speak Spanish, you can join to the #drupal-es IRC channel to get some feedback about how to apply to your cvs account faster.
Cheers!
Comment #13
avpadernoActually, a hook implementation comment should be
Comment #14
Manonline commentedThanks for replying me.
I had corrected errors mentioned above. The code is attached.
About this
Note that before require_once, there is a civicrm_initialize(), this puts me into the civicrm context. If I don't call that function, I cant require the API file without the full path.
Here is a code example extracted from CiviCRM's Wiki (http://wiki.civicrm.org/confluence/display/CRMDOC32/Using+CiviCRM+APIs+-...)
Sorry for the poor documentation, I will work on that (I need to take some English classes hehehe).
Comment #15
avpadernoIf the string is shown in the user interface, it should be passed to
t().The call to
watchdog()is not correct.Comment #16
Manonline commentedThanks again for your time.
Comment #17
Manonline commentedOh, I double concatenate the string. Fixed here.
Comment #18
Manonline commentedComment #19
brianV commentedA few notes:
should be:
To clarify, watchdog() takes both $message and $variables paramenters, which behave exactly like the $string and $args parameter you would pass to t().
Hope this helps.
Comment #20
zzolo commentedHi. Please read all the following and the links provided as this is very important information about your CVS Application:
Drupal.org has moved from CVS to Git! This is a very significant change for the Drupal community and for your application. Please read the following documentation on how this affects and benefits you and the application process:
Migrating from CVS Applications to (Git) Full Project Applications
Comment #21
avpaderno