Setting created and modified user via SugarCRM Webservice API
A Callinize user recently reported that they were getting email notifications for each Call being created. They had assignment notifications turned on, so whenever created_by_user !== assigned_user_id
, an email gets sent to the assigned user that looks like:
{The_API_User} has assigned a Call to {Assigned_To_User}. Subject: Status: Start Date: 2014-01-03 11:44:35 UTC(+00:00) Duration: 0h, 3m Description: {description} You may review this Call at: https://your.domain.com/index.php?module=Calls&action=DetailView&record=b64a1b7b-94f5-4b5d-01fd-52c6a2a33041
So, i figured oh we’re not setting the created user… this should be an easy fix. Well, for me at least… it wasn’t. Special thanks to Jason Eggers of SugarOutfitters or I would have never figured this out…
Flags Required
In order to modify them, you must include these flags. And no, it’s not a typo… they’re named inconsistently.
"set_created_by" => false, "update_modified_by" => false,
Fields Needed
Again, not a typo… they’re just inconsistent.
"created_by" => $userCrmId, "modified_user_id" => $userCrmId,
Final Snippet
Putting it all together, here’s the snippet I use in my set_entry
calls:
// Sets: assigned, created, and modified user to $userCrmId "set_created_by" => false, "update_modified_by" => false, "assigned_user_id" => $userCrmId, "created_by" => $userCrmId, "modified_user_id" => $userCrmId, // NOT NEEDED, Kept because: // 1. In case future API makes them more consistent. (dont want to revisit) // 2. Doesn't break anything (Surprisingly!) // 3. Will help people find this posting searching on google ;-) "set_modified_by" => false, "update_created_by" => false, "created_by_id" => $userCrmId, "modified_by_id" => $userCrmId, "modified_by" => $userCrmId, "created_user_id" => $userCrmId,
Note: I tested this with Sugar v4_1 api via rest. I’ve heard it might have changed in the newer rest apis that Sugar 7 has. If anyone knows, please add a comment.
EDIT: After going through all this… It turns out there is a bug in 6.7.1 which was the real problem. I think in Sugar 6.5 and below assignment notifications are only triggered for records which are updated (not created) and the assigned_user_id
changes. Please upvote this issue: http://www.sugarcrm.com/support/bugs.html?caseID=63675#issue_63675