Published at: 2025-10-30
1.3 [ShareCRM Task OA] Huawei WeLink Integration Case Study
Need-to-provide Information
Reference: https://open.welink.huaweicloud.com/docs/#/990hh0/whokyc/eatdqi
API Call Information
Application clientId: Application secret clientSecret:
Step 1: Configure Result Format

Step 2: Account Binding

Step 3: To-Do (Task) Configuration
- Create Task
API endpoint: https://open.welink.huaweicloud.com/api/todo/v3/addtask HTTP method: POST Body parameters:
{ “taskId”: “#F012_#F001”, “taskTitle”: “#F056 \nDocument No.: #F053 \n Submitter: #F054”, “userId”: “#F001”, “detailsUrl”:”https://www.fxiaoke.com/erp/syncdata/open/oa/authorize/common/#F028/#F037/#F015/true?code=$(code)”, “detailsUrlPc”:”https://www.fxiaoke.com/erp/syncdata/open/oa/authorize/common/#F028/#F037/#F015/false?code=$(code)”, “appName”: “CRM”, “applicantUserId”: “#F049”, “isMsg”: 1, “isShowApplicantUserName”:true, “applicantId”:”#F012”, “businessCode”:”” }

- Edit Task
API endpoint: https://open.welink.huaweicloud.com/api/todo/v1/deltask HTTP method: PUT Body parameters:
{ “taskId”: “#F012_#F001”, “userId”: “#F001” }

- Delete Task
API endpoint: https://open.welink.huaweicloud.com/api/todo/v1/deltask HTTP method: DELETE Body parameters:
{ “taskId”: “#F012_#F001” }

Step 4: Configure Task Sync Function

Code example (TODoAll__c)
** * @author ShareCRM Shen Jiaqi * @codeName Integration_TaskRequestHandler * @description Integration_TaskRequestHandler * @createTime 2023-09-14 */ log.info(“syncArg:”+Fx.json.toJson(syncArg))
String requestDataStr = syncArg[“requestData”] as String Map<String,Object> requestData = Fx.json.parse(requestDataStr)
String urldata = syncArg[“url”] as String //Request URL, can be dynamic if(urldata.contains(“updatetask”) || urldata.contains(“deltask”) ){ //Append parameters to URL urldata=”?”; requestData.each{ String k,Object v -> urldata=urldata+k+”=”+v+”&” } urldata=urldata.substring(0,urldata.length()-1) log.info(“urldata:”+urldata) requestDataStr=null }
Map header = [:] String access_token = WeLinkUtils.getAccessToken(null) header.put(“Accept-Charset”,”UTF-8’” ) header.put(“Content-Type”,”application/json”) header.put(“x-wlk-Authorization”,access_token) return [“header”:header,”url”:urldata,”requestData”:requestDataStr]
Step 5: Configure SSO (No-Login) Authorization URL Function

Code example (sync_ssoFunction__c)
/** * @author ShareCRM Shen Jiaqi * @codeName Integration_TaskSSORedirect * @description Task SSO redirect * @createTime 2023-09-14 */ String url = syncArg[“oaConnectParam”][“ssoAuthUrl”] as String; log.info(“url:”+url) String code = syncArg[“params”][“requestParams”][“code”] as String; log.info(“code:”+code);
String userId = WeLinkUtils.getUserid(code) syncArg.put(“oaUser”,userId.trim()) //Always return third-party account under key “oaUser” log.info(“syncArg:”+Fx.json.toJson(syncArg)) return syncArg