如何通过钩子或API在sugarcrm中导入联系人列表中的用户?
How can I import users in contact list through hook or API in sugarcrm?
我想将我的 Joomla 网站的用户整合到 sugarcrm 面板中。我正在使用 SuiteCRM 版本 7.7.6 [Sugar 版本 6.5.24(内部版本 509)] 并尝试通过挂钩将用户的 csv 文件导入到 sugarcrm 的联系人列表中。
意味着我想在 Joomla 和 Sugarcrm 站点之间构建自动集成功能。当新用户在 Joomla 网站上注册时,他们应该会自动添加到 crm 面板的联系人列表中。
是否有任何可能的方法来实现此集成?
是的,这是可能的,尽管在钩子中不可行。
如果您需要多次导入 CSV,为导入实施调度程序作业可能是个好主意。
然而,您实际上可以根本不使用 CSV,而是让 Joomla 或中间脚本使用您的 CRM 的 REST API 实时或您选择的时间间隔将数据推送到 sugar。
我有一个解决方案,可以通过 Rest API.
将记录集成到 sugarcrm 的特定模块中
- 在您的 CRM 项目目录之外的任何位置创建 php 文件并编写 API 代码,如下所示。
- 需要设置 sugarcrm 的站点 URL 并在 API 中配置管理员用户名和密码。
- 之后,设置要添加数据的模块名称。
- 以给定的数组格式调整数据。
- 现在只需在浏览器中点击文件 URL 放置此 API。
- 数据将成功添加到所需模块中。
API代码:
$url = "http://{site_url}/service/v4_1/rest.php";
$username = "admin";
$password = "password";
//function to make cURL request
function call($method, $parameters, $url)
{
ob_start();
$curl_reque**strong text**st = curl_init();
curl_setopt($curl_request, CURLOPT_URL, $url);
curl_setopt($curl_request, CURLOPT_POST, 1);
curl_setopt($curl_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($curl_request, CURLOPT_HEADER, 1);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_request, CURLOPT_FOLLOWLOCATION, 0);
$jsonEncodedData = json_encode($parameters);
$post = array(
"method" => $method,
"input_type" => "JSON",
"response_type" => "JSON",
"rest_data" => $jsonEncodedData
);
curl_setopt($curl_request, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($curl_request);
curl_close($curl_request);
$result = explode("\r\n\r\n", $result, 2);
$response = json_decode($result[1]);
ob_end_flush();
return $response;
}
//login --------------------------------------------
$login_parameters = array(
"user_auth" => array(
"user_name" => $username,
"password" => md5($password),
"version" => "1"
),
"application_name" => "RestTest",
"name_value_list" => array(),
);
$login_result = call("login", $login_parameters, $url);
/*
echo "<pre>";
print_r($login_result);
echo "</pre>";
*/
//get session id
$session_id = $login_result->id;
//create contacts ------------------------------------
$set_entries_parameters = array(
//session id
"session" => $session_id,
//The name of the module from which to retrieve records.
"module_name" => "Contacts",
//Record attributes
"name_value_list" => array(
array(
//to update a record, you will nee to pass in a record id as commented below
//array("name" => "id", "value" => "912e58c0-73e9-9cb6-c84e-4ff34d62620e"),
array("name" => "first_name", "value" => "John"),
array("name" => "last_name", "value" => "Smith"),
),
array(
//to update a record, you will nee to pass in a record id as commented below
//array("name" => "id", "value" => "99d6ddfd-7d52-d45b-eba8-4ff34d684964"),
array("name" => "first_name", "value" => "Jane"),
array("name" => "last_name", "value" => "Doe"),
),
),
);
$set_entries_result = call("set_entries", $set_entries_parameters, $url);
echo "<pre>";
print_r($set_entries_result);
echo "</pre>";
我想将我的 Joomla 网站的用户整合到 sugarcrm 面板中。我正在使用 SuiteCRM 版本 7.7.6 [Sugar 版本 6.5.24(内部版本 509)] 并尝试通过挂钩将用户的 csv 文件导入到 sugarcrm 的联系人列表中。 意味着我想在 Joomla 和 Sugarcrm 站点之间构建自动集成功能。当新用户在 Joomla 网站上注册时,他们应该会自动添加到 crm 面板的联系人列表中。
是否有任何可能的方法来实现此集成?
是的,这是可能的,尽管在钩子中不可行。
如果您需要多次导入 CSV,为导入实施调度程序作业可能是个好主意。
然而,您实际上可以根本不使用 CSV,而是让 Joomla 或中间脚本使用您的 CRM 的 REST API 实时或您选择的时间间隔将数据推送到 sugar。
我有一个解决方案,可以通过 Rest API.
将记录集成到 sugarcrm 的特定模块中- 在您的 CRM 项目目录之外的任何位置创建 php 文件并编写 API 代码,如下所示。
- 需要设置 sugarcrm 的站点 URL 并在 API 中配置管理员用户名和密码。
- 之后,设置要添加数据的模块名称。
- 以给定的数组格式调整数据。
- 现在只需在浏览器中点击文件 URL 放置此 API。
- 数据将成功添加到所需模块中。
API代码:
$url = "http://{site_url}/service/v4_1/rest.php";
$username = "admin";
$password = "password";
//function to make cURL request
function call($method, $parameters, $url)
{
ob_start();
$curl_reque**strong text**st = curl_init();
curl_setopt($curl_request, CURLOPT_URL, $url);
curl_setopt($curl_request, CURLOPT_POST, 1);
curl_setopt($curl_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($curl_request, CURLOPT_HEADER, 1);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_request, CURLOPT_FOLLOWLOCATION, 0);
$jsonEncodedData = json_encode($parameters);
$post = array(
"method" => $method,
"input_type" => "JSON",
"response_type" => "JSON",
"rest_data" => $jsonEncodedData
);
curl_setopt($curl_request, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($curl_request);
curl_close($curl_request);
$result = explode("\r\n\r\n", $result, 2);
$response = json_decode($result[1]);
ob_end_flush();
return $response;
}
//login --------------------------------------------
$login_parameters = array(
"user_auth" => array(
"user_name" => $username,
"password" => md5($password),
"version" => "1"
),
"application_name" => "RestTest",
"name_value_list" => array(),
);
$login_result = call("login", $login_parameters, $url);
/*
echo "<pre>";
print_r($login_result);
echo "</pre>";
*/
//get session id
$session_id = $login_result->id;
//create contacts ------------------------------------
$set_entries_parameters = array(
//session id
"session" => $session_id,
//The name of the module from which to retrieve records.
"module_name" => "Contacts",
//Record attributes
"name_value_list" => array(
array(
//to update a record, you will nee to pass in a record id as commented below
//array("name" => "id", "value" => "912e58c0-73e9-9cb6-c84e-4ff34d62620e"),
array("name" => "first_name", "value" => "John"),
array("name" => "last_name", "value" => "Smith"),
),
array(
//to update a record, you will nee to pass in a record id as commented below
//array("name" => "id", "value" => "99d6ddfd-7d52-d45b-eba8-4ff34d684964"),
array("name" => "first_name", "value" => "Jane"),
array("name" => "last_name", "value" => "Doe"),
),
),
);
$set_entries_result = call("set_entries", $set_entries_parameters, $url);
echo "<pre>";
print_r($set_entries_result);
echo "</pre>";