1.0.0 Moka通用单点登录
1.1.0 业务内容描述
1、单点登录( Single Sign-On , 简称 SSO )一句话介绍:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。
2、sso是多个相关但独立的软件系统访问控制的一个属性。通过使用该属性,用户登录与单个ID和密码来访问所连接的一个或多个系统,而不使用不同的用户名或密码,或在某些配置中无缝登录在每个系统上,它是比较流行的服务于企业业务整合的一种解决方案。总结一句话,SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。。
1.2.0 前置信息确认
1.确认企业登录的唯一标识:邮箱(推荐),工号,手机号。
2.企业提供登录地址url,通过配置生成密钥和偏移量给到企业
1.3.0 业务流程图
1.4.0 具体场景实现
请求示例如下
curl --location --request PUT 'https://api-staging003.mokahr.com/api/sso_setting/{orgId}?type=THIRD_SELF_RESEARCH' \ --header 'authorization: moka%20dun%2C%20moka%20dun%2C%20moka%20dunwan%20moka%20dun.' \ --header 'Content-Type: application/json' \ --data-raw '{ "setting": { "ifNotGoRecommendWeb": false, "ifNoCheckAlreadyLogin": false, "createRole": "", "ifEmailSsoLogin": true, "ssoIdType": "email", "baseUrl": "http://x.xx.xxx:", "returnUrl": "", "getLogin": { "url": "8080", "loginVerifyArr": [ "token" ], "ifPcMokaGoLogin": true, "ifPcRecommendGoLogin": true, "ifMobileMokaGoLogin": true, "ifMobileRecommendGoLogin": true, "loginPcMokaVerifyMsg": "", "loginPcRecommendVerifyMsg": "", "loginMobileMokaVerifyMsg": "", "loginMobileRecommendVerifyMsg": "", "mapping": {}, "fixed": {}, "path": { "token": "query.token" } }, "getSsoId": { "getType": 2, "http": { "url": "/getSso" }, "crypt": { "ifCheckTimeStamp": true, "ifJsonParse": true, "decryptType": "aes-256-cbc-iv", "decryptKey": "decryptKey", "decryptIv": "decryptIv" }, "mapping": { "clientId": "appid", "thirdTokenId": "openid", "encryptValue": "token" }, "fixed": { "method": "get" }, "path": { "encryptValue": "query.token", "decryptRes": "resBody.data", "ssoId": "resBody.data.phone", "thirdEmail": "resBody.data.email", "thirdPhone": "resBody.data.phone", "thirdName": "resBody.data.name", "thirdNumber": "resBody.data.number" } } } }' 注:根据具体企业修改相关的字段信息 |
2.0.0 组织架构信息同步
2.1.0 业务描述
用于双方系统组织架构信息保持一致,便于后续招聘系统数据分析,目前支持全量以及增量的组织架构数据同步。
2.2.0 前置信息确认
1、确认数据返回逻辑
确认数据返回逻辑为全量返回,还是有对应的增量返回,比如修改,删除时接口返 回对应数据;
2、确定双方对应字段映射
需要根据企业对应系统的组织架构数据返回参数以及Moka Api接口入参确定好两者系统对应的字段映射关系;
3、技术侧实现
基于以上数据返回逻辑以及映射关系确认后,企业方技术侧调用Moka Api接口实现对应组织架构同步;
2.3.0 业务流程图
2.4.0 具体场景实现
2.4.1 全量同步组织架构
一、场景说明
该场景适用于企业侧只有全量数据,没有用以区分新增以及删除部门的标识或接口;
二、接口调用步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-32 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/departments' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '[ { "name": "总部-0001", "parent_code": "", "department_code": "BMTH00080", "type": 1, "sequence": 1 }, { "name": "技术部", "parent_code": "zongbu", "department_code": "js-001", "type": 1, "sequence": 2 }]' 注:根据具体企业修改相关的字段信息 |
C、注意事项
实现逻辑:调用全量同步组织架构接口,将A,B,C,D,E全部同步就好;如果此时只 在接口中传入E部门的话,相当于是标记删除了其他部门,只同步了E,所以需要 全部都同步;
实现逻辑:调用全量同步组织架构接口,将A,B,C三个部门同步,D部门会被标记 删除;用全量同步接口相对于在删除部门时,减少了调用删除接口
实现逻辑:调用全量同步组织架构接口,同时传入A,B,C(修改后),D部门信 息,实现修改部门C的需求 |
2.4.2 增量同步组织架构
一、场景说明
按照确认数据返回逻辑确认好对应增量、修改、删除数据返回,分别调用全量、增量、更新以及删除及合并接口实现双方数据同步一致;
二、对接概要
1、初次同步组织架构时,调用全量同步接口同步现有组织信息(参考全量同步组织架构)
2、按照数据返回逻辑拉取到增量新增数据后,调用增量同步接口同步;
3、按照数据返回逻辑拉取到修改数据后,调用更新组织架构接口更新;
4、按照数据返回逻辑拉取到删除部门信息后,调用删除及合并接口删除合并Moka系统 已存在部门
三、接口调用步骤
增量同步步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-36 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request POST 'https://api-staging003.mokahr.com/api-platform/v1/departments/sync/incremental' \ --header 'Authorization: Basicbase64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '[ { "department_code": "A301801", "name": "门店测试", "parent_code": "", "type":2, "sequence": 0 }, { "department_code": "A301802", "name": "003总部", "parent_code": "", "type":1, "sequence": 0 } ]' 注:根据具体企业修改相关的字段信息 |
C、注意事项
|
2.4.3 更新组织架构步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-39 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request POST 'https://api-staging003.mokahr.com/api-platform/v1/departments' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '[ { "department_code": "xz-001", "name": "namenamename1221", "parent_code": "zongbu", "sequence": 0 }]' 注:根据具体企业修改相关的字段信息 |
C、注意事项
|
2.4.4 删除及合并组织架构步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-41 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request DELETE 'https://api-staging003.mokahr.com/api-platform/v1/departments' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{ "departments": [ { "department_code": "A301801", "target_department_code": "cw-001" }, { "department_code": "js-001-02" } ], "email": "zhaomeifeng@mokahr.com" }' 注:根据具体企业修改相关的字段信息 |
C、注意事项
|
3.0.0 用户信息同步
3.1.0 业务内容描述
用于双方系统人员信息保持一致,目前有V1和V2两个版本。
3.2.0 前置信息确认
3.2.1确认数据的基本字段
人员信息中工号、手机号、邮箱是否齐全?
工号、手机号、邮箱中用哪一个作为唯一标识?
确认好全量同步成什么角色?
确认是否存在同步到Moka的用户手动调整角色后,下次更新不再更新部门信息的情况?
3.2.2确认字段关系映射
根据企业接口中的返回的数据对应上Moka Api接口的入参,做好字段关系映射。
3.3.0 业务流程图
3.4.0 具体场景实现
3.4.1同步人事信息V1
一、场景说明
该接口适用于工号、手机号、邮箱齐全的情况下使用。并且角色信息支持创建,不支持角色更新,如果更新则去对应的v2接口中。
二、对接概要
1、用v1的接口要确保工号、手机号、邮箱齐全,并且这三者都要是唯一值。
2、角色信息只有第一次创建时生效,后续继续传入,不会更新。
三、接口调用步骤
人事信息同步步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-46 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/users/syncInfo' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '[{"email":"amer@ceshi.com","name":"AMER JAMIL SALAH ABU AL KALBAT","phone":"33730444934","number":"T2447","role":0,"departmentCode":["2326232"],"superiorEmail":"","deactivated":0,"thirdPartyId":"354433808","updateDepartment":true,"updateSuperiorEmail":false},{"email":"cindyevania@ceshi.com","name":"CINDY EVANIA CHARIS","phone":"36602079989","number":"T3328","role":0,"departmentCode":["2745394"],"superiorEmail":"","deactivated":0,"thirdPartyId":"360706430","updateDepartment":true,"updateSuperiorEmail":false},{"email":"dohamy@ceshi.com","name":"DO HA MY","phone":"33328237385","number":"T3346","role":0,"departmentCode":["2745394"],"superiorEmail":"","deactivated":0,"thirdPartyId":"360803993","updateDepartment":true,"updateSuperiorEmail":false}]' 注:根据具体企业修改相关的字段信息 |
C、 注意事项
员工号:A001,手机号:1111,邮箱:111@qq.com 员工号:B001,手机号:2222,邮箱:222@qq.com 你想调接口去增加 员工号:C001,手机号:2222,邮箱:333@qq.com 这种情况回提示手机号已存在的错误。
员工号:A001,手机号:111,邮箱:111@qq.com 员工号:B001,手机号:2222,邮箱:222@qq.com 由于某些原因你把员工B001的手机号弄错了,B001的手机号正确是111, 调接口去更新员工号:B001,修改手机号为111。这种情况系统回提示错误,手机号 在系统中重复,同步失败。正确的操作是要先把A001的手机号修改正确再同步B001 的数据。 |
离职人员账户禁用
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-46 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com Moka没有删除人员的接口,但账户可以禁用,把Deactivated字段赋值为1即可。 |
B、请求示例:
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/users/syncInfo' \ --header 'Authorization: Basicbase64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '[{"email":"amer@ceshi.com","name":"AMER JAMIL SALAH ABU AL KALBAT","phone":"33730444934","number":"T2447","role":0,"departmentCode":["2326232"],"superiorEmail":"","deactivated":0,"thirdPartyId":"354433808","updateDepartment":true,"updateSuperiorEmail":false},{"email":"cindyevania@ceshi.com","name":"CINDY EVANIA CHARIS","phone":"36602079989","number":"T3328","role":0,"departmentCode":["2745394"],"superiorEmail":"","deactivated":0,"thirdPartyId":"360706430","updateDepartment":true,"updateSuperiorEmail":false},{"email":"dohamy@ceshi.com","name":"DO HA MY","phone":"33328237385","number":"T3346","role":0,"departmentCode":["2745394"],"superiorEmail":"","deactivated":0,"thirdPartyId":"360803993","updateDepartment":true,"updateSuperiorEmail":false}]' 注:根据具体企业修改相关的字段信息 |
C、 注意事项
|
3.4.2 同步人事信息V2
一、场景说明
该接口适用于工号、手机号、邮箱不齐全的情况下使用。并且角色信息支持更新。
二、对接概要
用v2的接口要确保工号、手机号、邮箱其中一个为唯一标识且所有人都有。从整体数据工号、手机号、邮箱都要唯一,不能存在重复的情况。
三、接口调用步骤
人员信息同步步骤
A、请求地址
接口文档地址:https://www.mokahr.com/docs/api/#-148 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request POST 'https://api.mokahr.com/api-platform/v2/users/syncInfo' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{"usersInfo":[{"name":"摩小卡1","phone":"19025311101","number":"AD36794","roleId":79526,"departmentCode":[134437350],"deactivated":0,"thirdPartyId":"“”","uniqueType":"phone","updateDepartment":true,"autoActivated":1},{"name":"摩小卡2","phone":"10056969021","number":"AD34340","roleId":79526,"departmentCode":[134437350],"deactivated":0,"thirdPartyId":"“”","uniqueType":"phone","updateDepartment":true,"autoActivated":1}]}' 注:根据具体企业修改相关的字段信息 |
C、 注意事项
员工号:A001,手机号:1111,邮箱:111@qq.com 员工号:B001,手机号:2222,邮箱:222@qq.com 你想调接口去增加 员工号:C001,手机号:2222,邮箱:333@qq.com 这种情况回提示手机号已存在的错误。
员工号:A001,手机号:111,邮箱:111@qq.com 员工号:B001,手机号:2222,邮箱:222@qq.com 由于某些原因你把员工B001的手机号弄错了,B001的手机号正确是111, 调接口去更新员工号:B001,修改手机号为111。这种情况系统回提示错误,手机号 在系统中重复,同步失败。正确的操作是要先把A001的手机号修改正确再同步B001 的数据。 |
离职人员账户禁用
A、请求地址
接口文档地址:https://www.mokahr.com/docs/api/#-148 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com Moka没有删除人员的接口,账户可以禁用,把Deactivated字段赋值为1即可。 |
B、请求示例
curl --location --request POST 'https://api.mokahr.com/api-platform/v2/users/syncInfo' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{"usersInfo":[{"name":"摩小卡1","phone":"19025311101","number":"AD36794","roleId":79526,"departmentCode":[134437350],"deactivated":0,"thirdPartyId":"“”","uniqueType":"phone","updateDepartment":true,"autoActivated":1},{"name":"摩小卡2","phone":"10056969021","number":"AD34340","roleId":79526,"departmentCode":[134437350],"deactivated":0,"thirdPartyId":"“”","uniqueType":"phone","updateDepartment":true,"autoActivated":1}]} 注:根据具体企业修改相关的字段信息 |
C、 注意事项
|
4.0.0 招聘需求信息同步
4.1.0 业务内容描述
目的是将双方系统中招聘需求保持一致,利于分析后续招聘系统数据分析;
4.2.0 前置信息确认
1、确认数据返回逻辑
确认企业侧招聘需求数据返回逻辑;招聘需求是否涉及更新,取消,删除等操作;
2、确定双方对应字段映射
需要根据企业对应招聘需求数据返回参以及moka api接口入参确定好对应的字段映射关系;
3、技术侧实现
基于以上数据返回逻辑以及映射关系确认好后,技术侧调用接口实现对应需求新增,修改,删除等操作;
4.3.0 业务流程图
4.4.0 具体场景实现
一、场景说明
适用于新增,修改,删除对应招聘需求;
二、对接概要
1、初次同步招聘需求至moka系统,需调用新建招聘需求接口
2、涉及修改,取消招聘需求时,则需调用更新招聘需求接口
3、若企业侧将已同步至moka系统的原招聘需求已删除,则可调用更新接口将该需求状态更新成已取消,或调用删除接口删除招聘需求
三、接口调用步骤
4.4.1 招聘信息同步步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-55 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request POST 'https://api-staging003.mokahr.com/api-platform/v1/headcount?currentHireMode=1' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --header 'Cookie: connect.sid=s%3Aqp4q3p3f0TWGrNswXYgtjW7sWFghOJ57.sQYKcSsP1MLP4wLK4CaRK%2F4S8bRk2zEC8ZZNSdno0wo; locale=en-US' \ --data-raw '{ "number": "hc_automan001", "jobName": "hcName001", "needNumber": 1, "startDate": "2022-10-12T00:00:00.000Z", "education": "本科", "departmentCode": "abc0001" }' 注:根据具体企业修改相关的字段信息 |
C、注意事项
|
4.4.2 更新招聘信息步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-57 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/headcount/200159412' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --header 'Cookie: connect.sid=s%3Aqp4q3p3f0TWGrNswXYgtjW7sWFghOJ57.sQYKcSsP1MLP4wLK4CaRK%2F4S8bRk2zEC8ZZNSdno0wo; locale=en-US' \ --data-raw ' { "jobName": "测试hc", "needNumber": 20, "status": canceled }' 注:根据具体企业修改相关的字段信息 |
C、注意事项
|
4.4.3 删除招聘需求步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-59 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request DELETE 'https://api-staging003.mokahr.com/api-platform/v1/headcount/hcid' \ --header 'Cookie: connect.sid=s%3Aqp4q3p3f0TWGrNswXYgtjW7sWFghOJ57.sQYKcSsP1MLP4wLK4CaRK%2F4S8bRk2zEC8ZZNSdno0wo; locale=en-US' 注:根据具体企业修改相关的字段信息 |
C、注意事项
|
5.0.0 职位信息同步
5.1.0 业务内容描述
目的是将企业系统的发布职位同步到招聘系统保持一致,利于分析后续招聘系统中候选人入职信息的写入
5.2.0 前置信息确认
1、职级的创建
2、职能的绑定
3、职位和招聘需求的关联
5.3.0 业务流程图
5.4.0 具体场景实现
一、场景说明
将三方系统HR创建的职位发布招聘官网
二、对接概要
1、职级的获取
2、职能的获取
三、各场景调用步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-59 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request GET 'https://api-staging003.mokahr.com/api-platform/v1/job_ranks' \
--header 'Authorization: Basic base64(apiKey:)'
B、请求示例
curl --location --request POST 'https://api.mokahr.com/api-platform/v1/users/syncInfo' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '[{"email":"amer@ceshi.com","name":"AMER JAMIL SALAH ABU AL KALBAT","phone":"33730444934","number":"T2447","role":0,"departmentCode":["2326232"],"superiorEmail":"","deactivated":0,"thirdPartyId":"354433808","updateDepartment":true,"updateSuperiorEmail":false},{"email":"cindyevania@ceshi.com","name":"CINDY EVANIA CHARIS","phone":"36602079989","number":"T3328","role":0,"departmentCode":["2745394"],"superiorEmail":"","deactivated":0,"thirdPartyId":"360706430","updateDepartment":true,"updateSuperiorEmail":false},{"email":"dohamy@ceshi.com","name":"DO HA MY","phone":"33328237385","number":"T3346","role":0,"departmentCode":["2745394"],"superiorEmail":"","deactivated":0,"thirdPartyId":"360803993","updateDepartment":true,"updateSuperiorEmail":false}]' 注:根据具体企业修改相关的字段信息 |
C、获取职能
curl --location --request GET 'https://api-staging003.mokahr.com/api-platform/v1/jobs-groupedby-zhineng/implgrouppublic?mode=social' \ --header 'Authorization: Basic base64(apiKey:)' |
D、创建职位
curl --location --request POST 'https://api-staging003.mokahr.com/api-platform/v1/jobs?currentHireMode=1' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{ "title": "API测试+同时发布到招聘官网2", "status": "open", "commitment": "其它", "departmentCode": "110", "minSalary": 20, "maxSalary": 50, "education": "本科", "managerEmail": "ceshi@ceshi.com", "hrAssistantEmails": [ ], "hiringManagerEmails": [ ], "interviewerEmails": [ ], "jobRankIds": 1, "finishedAt": "2020-04-15 00:00:00", "siteIds":["200001624"] }' 注:根据具体企业修改相关的字段信息 |
E、更新职位【与创建职位的参数一致,注意职位性质有一个是(其它)】
curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/jobs/jobid' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{ "title": "API测试+同时发布到招聘官网3", "status": "open", "commitment": "其它", "departmentCode": "110", "minSalary": 20, "maxSalary": 50, "education": "本科", "managerEmail": "ceshi@ceshi.com", "hrAssistantEmails": [ ], "hiringManagerEmails": [ ], "interviewerEmails": [ ], "jobRankIds": 1, "finishedAt": "2020-04-15 00:00:00", "siteIds":["200001624"] }' 注:根据具体企业修改相关的字段信息 |
C、注意事项
工作地点和职位级别这两个字段需要的是id,需要通过获取企业职位级别接口和获取企业工作地点接口来获取id。 |
6.0.0 Offer信息同步
6.1.0 业务内容描述
在Moka系统中创建Offer信息,并且支持更新已经创建的Offer信息,便于后续将Offer同步给三方
6.2.0 前置信息确认
1、确认是系统字段还是自定义字段。
2、创建人的邮箱需要在系统存在
3、如果字段涉及码值,需要企业按照码值匹配
6.3.0 业务流程图
6.4.0 具体场景实现
一、场景说明
在Moka系统中创建Offer信息
二、对接概要
双方接口的字段映射关系要确认清楚
三、各场景调用步骤
6.4.1 创建Offer步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#offer 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request POST 'https://api-staging003.mokahr.com/api-platform/v1/create-offer' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{ "applicationId": 候选人id "checkinDate": "2022-05-09", "locationId": 工作地点的id "contactUserName": "摩小卡", "contactPhone": "15945670038", "creatorEmail": "ceshi@ceshi.com", "contactEmail": "ceshi@ceshi.com", "hcId": hcId, "jobRankId": 职位级别的id, "departmentCode": 组织架构的编码, "isCreateOfferAttachment": true, "customFields": [ { "name": "入职时间", "value": "2022-05-09" }, { "name": "月薪总额(元/月)-税前", "value": "12000" }, { "name": "月薪总额(元/月)税前", "value": "12000" }, { "name": "劳动合同签约工资数(元)", "value": "4000" }, { "name": "公积金(公司承担部分)(元/月)", "value": "1000" }, { "name": "劳动合同期限(年)", "value": "5" }, { "name": "常驻工作地", "value": "杭州" }, { "name": "直接上级", "value": "李彦峰" }, { "name": "月基本工资(元/月)", "value": "4000" }, { "name": "岗位津贴(元/月)", "value": "8000" }, { "name": "餐贴+下午茶补贴(元/天)-base杭州", "value": "16" }, { "name": "餐补(元/天)", "value": "16" }, { "name": "月度津贴(税前)", "value": "0" }, { "name": "年底津贴(税前)", "value": "0" }, { "name": "试用期月薪比例(%)", "value": "100" }, { "name": "岗位名称", "value": "前端开发岗" }, { "name": "年终奖描述", "value": "月薪总额(税前)*3.0," }, { "name": "保密补贴(元/月)-base杭州", "value": "30" }, { "name": "奖金浮动月份(月数)", "value": "3.0" }, { "name": "工作时间", "value": "弹性工作时间:9:00—18:00" }, { "name": "联系人", "value": "摩小卡1" }, { "name": "试用期(X月)", "value": "6" }, { "name": "联系方式", "value": "159xxxxxxxx" }, { "name": "offer模板选择", "value": "offer模板-总部(常驻工作地为杭州的总部员工)" }, { "name": "劳动合同签约工资数(元)", "value": "4000" } ] }' 注:根据具体企业修改相关的字段信息 |
C、 注意事项
|
6.4.2 更新Offer信息步骤
A、接口文档地址
接口文档地址: https://www.mokahr.com/docs/api/#offer-2 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request POST 'https://api-staging003.mokahr.com/api-platform/v1/offers/offerFields/update' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{ "applicationId": "候选人的id", "operatorName": "摩小卡", "orgId": "orgid", "fields": [ { "name": "预计入职时间", "value": "2022-04-08" }, { "name": "职位级别", "value": "410031150" }, { "name": "入职部门", "value": "200563151" },curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/offer/status?applicationId=候选人的申请id&accepted=1' \ --header 'Authorization: Basic base64(apiKey:)' { "name": "实际入职职位", "value": "奢侈品HRBP经理" } ] }' 注:根据具体企业修改相关的字段信息base64(apiKey:) |
C 、注意事项
|
6.4.3 接收/拒绝Offer信息步骤
A、接口文档地址
接口文档地址: https://www.mokahr.com/docs/api/#offer-6 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/offer/status?applicationId=候选人的申请id&accepted=1' \ --header 'Authorization: Basic base64(apiKey:)' 注:根据具体企业修改相关的字段信息 |
C 、注意事项
|
7.0.0 入离转正状态信息同步
7.1.0 业务内容描述
用于候选人入职状态回传,保持双方候选人入职状态一致;利于招聘系统分析数据。
7.2.0 前置信息确认
暂无
7.3.0 业务流程图
7.4.0 具体场景实现
一、场景说明
同步候选人入职,离职,转正状态到Moka系统。
二、对接概要
暂无
三、各场景调用步骤
7.4.1 入职状态同步步骤
A、请求地址
接口文档地址:https://www.mokahr.com/docs/api/#-153 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/applications/{applicationid}/hired' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --header 'Cookie: connect.sid=s%3Aqp4q3p3f0TWGrNswXYgtjW7sWFghOJ57.sQYKcSsP1MLP4wLK4CaRK%2F4S8bRk2zEC8ZZNSdno0wo; locale=en-US' \ --data-raw '{ "hcId": 200168611, "hiredAt": "2022-06-06T16:00:00.000Z", "probation": 3 }' 注:根据具体企业修改相关的字段信息 |
C、字段Mapping
XX字段名称 | 字段描述 | 字段类型 | 是否必填 | 备注 | Moka字段名称 | Moka接口字段名称 | 备注 |
|
|
|
|
| 该候选人对应职位的对应headcount id | hcId |
|
|
|
|
|
| 实际入职时间 | hiredAt |
|
|
|
|
|
| 试用期 | probation | 可选值0-6,0为无试用期,1-6对应几个月试用期 |
D、注意事项
|
7.4.2 转正状态同步步骤
A、请求地址
接口文档地址:https://www.mokahr.com/docs/api/#-155 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/applications/{applicationid}/corrected' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --header 'Cookie: connect.sid=s%3Aqp4q3p3f0TWGrNswXYgtjW7sWFghOJ57.sQYKcSsP1MLP4wLK4CaRK%2F4S8bRk2zEC8ZZNSdno0wo; locale=en-US' \ --data-raw '{ "status": 1, "correctedAt": "2022-08-06T16:00:00.000Z" }' 注:根据具体企业修改相关的字段信息 |
C、字段Mapping
XX字段名称 | 字段描述 | 字段类型 | 是否必填 | 备注 | Moka字段名称 | Moka接口字段名称 | 备注 |
|
|
|
|
| 更新的转正状态;1:转正 0:未转正 | status |
|
|
|
|
|
| 实际转正时间 | correctedAt |
|
D、注意事项
暂无 |
7.4.3 离职状态同步步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-157 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例
curl --location --request PUT 'https://api-staging003.mokahr.com/api-platform/v1/applications/{applicationid}/resign' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --header 'Cookie: connect.sid=s%3Aqp4q3p3f0TWGrNswXYgtjW7sWFghOJ57.sQYKcSsP1MLP4wLK4CaRK%2F4S8bRk2zEC8ZZNSdno0wo; locale=en-US' \ --data-raw '{ "detail": "消化不好", "time": "2022-05-27T16:00:00.000Z", "reason":1 }' 注:根据具体企业修改相关的字段信息 |
C、字段Mapping
XX字段名称 | 字段描述 | 字段类型 | 是否必填 | 备注 | Moka字段名称 | Moka接口字段名称 | 备注 |
|
|
|
|
| 离职类型 | type |
|
|
|
|
|
| 离职原因 | detail |
|
|
|
|
|
| 离职时间 | time |
|
|
|
|
|
| 操作人的邮箱 |
| |
|
|
|
|
| 操作人有权限的人才库ID | talentPoolId |
|
|
|
|
|
| 是否回写离职信息 | isResignWriteJob |
|
|
|
|
|
| 离职职位 | resignJobName |
|
|
|
|
|
| 离职部门 | resignDepartment |
|
|
|
|
|
| 离职原因 | reason |
|
|
|
|
|
| 离职职类 | resignJobType |
|
D 、注意事项
接口文档中的Type不需要传入,否则接口会报错 |
8.0.0 导入EHR信息同步
8.1.0 业务内容描述
将候选人信息推送到企业系统,推送候选人信息目前在Moka中是由导入EHR"按钮点击触
8.2.0 前置信息确认
1、确认导入EHR接口地址
需企业提供一个没有鉴权,Post请求 Body接收参数的接口(支持Rest,Soap接口规则)
如果企业提供接口必须有鉴权,变通方案用IPass平台透传实现,属于定制交付。
2、确认企业是否需要导入成功后跳转页面
如果OA/EHR想在MOKA中触发Webhooks后想跳转到目标地址,只需要在 body的返回参数中加上redirectUrl参数即可。当MOKA收到参数后会根据用户的设备去判断跳转PC端还是Mobile端。目前跳转只支持RESTful方式的webhooks。
3、确定数据是否需要加密
如果企业对数据的安全性要求更高,可以选择对传输的数据进行加密。我们的加密算法采用AES-256,16进制,加密模式为CBC。 我们只会对body中的data字段进行加密,不包括id,event,triggeredAt等字段。 如果需要数据加密,请联系与您企业对接的客户成功经理进行开通,并设置加密密钥。 加密密钥请妥善保存。
4、确认字段关系映射
确认企业业务系统需要的字段在我们标准数据结构中是否存在,不存在的字段通过添加自定义字段是否满足。
3.7.3 业务流程图
8.3.0 具体场景实现
一、场景说明
Offer阶段手动触发导入ehr推送候选人信息到企业OA做offer审批,审批结束回传审批状态到Moka,候选人流转到待入职阶段。邀请候选人更新个人信息,再次触发导入ehr,推送最新候选人数据到OA做入职审批操作,操作完成同步入职状态回Moka。
二、对接概要
1、企业需要提供两个导入ehr接口(一个offer导入用,一个待入职导入用)
2、与您企业对接的客户成功经理协助配置
3、确认是否开启导入EHR按钮
4、确认是否选择公共推送
5、必须生成EHR密钥(签名用)
6、如果数据加密,秘钥IV必须生成
三、各场景调用步骤
8.3.1 导入Ehr信息同步步骤
A、请求地址
企业提供请求地址 |
B、请求示例
第一步 与您企业对接的客户成功经理协助配置 第二步 页面按钮触发测试
|
C 、注意事项
|
9.0.0 面试信息同步
9.1.0 业务内容描述
用于推送面试信息同步到企业对接系统。
9.2.0 前置信息确认
暂无
9.3.0 业务流程图
9.4.0 具体场景实现
一、场景说明
推送添加面试信息目前在Moka中是由添加面试完成确认按钮点击时触发
二、对接概要
面试信息创建、修改、删除调用的是同一接口地址
三、各场景调用步骤
9.4.1 面试信息步骤
A、请求地址
企业提供信息同步地址 |
B、请求示例
curl --location --request POST 'https://api-staging003.mokahr.com/inner/api-platform/interface/createThirdPartyConfigInfo' \ --header 'authCode: authCode' \ --header 'Authorization: Basic base64(apiKey:)' \ --header 'Content-Type: application/json' \ --data-raw '{ "org_id": "tongdun", "third_type": "4", "name": "同盾科技", "rest_info": "{\"baseUrl\":\"https://ceshi-test.cn\",\"syncInterviewsUrl\":\"/moka/callback\"}", "rest_headers": "{\"content-type\": \"application/json;charset=utf-8\"}", "config_info": "{\"secretKey\":\"secretKey\",\"needEncrypt\":false}" }' 注:根据具体企业修改相关的字段信息 |
C 、注意事项
|
10.0.0 Moka通用单点登录
10.1.0 业务内容描述
1、单点登录( Single Sign-On , 简称 SSO )一句话介绍:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。
2、sso是多个相关但独立的软件系统访问控制的一个属性。通过使用该属性,用户登录与单个ID和密码来访问所连接的一个或多个系统,而不使用不同的用户名或密码,或在某些配置中无缝登录在每个系统上,它是比较流行的服务于企业业务整合的一种解决方案。总结一句话,SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。。
10.2.0 前置信息确认
10.3.0 业务流程图
11.0.0 招聘官网
11.1.0 业务内容描述
企业根据职位投递候选人简历到moka
11.2.0 前置信息确认
需要确认职位是否已经发布到招聘官网上
11.3.0 业务流程图
11.4.0 具体场景实现
一、场景说明
企业根据职位投递候选人简历到moka
二、对接概要
1.需要确认职位是否已经发布到招聘官网上
2.跟企业沟通确认候选人字段映射
3.是否内推,招聘模式为社招还是校招
4.请求方式有两种
(1)json格式,正常信息同步
(2)(multipart/form-data方式),可以上传附件
三、各场景调用步骤
A、请求地址
接口文档地址: https://www.mokahr.com/docs/api/#-14 测试环境请求域名: https://api-staging003.mokahr.com 正式环境请求域名: https://api.mokahr.com |
B、请求示例(json格式)
curl https://api.mokahr.com/api-platform/v1/jobs/moka/1234/apply \ -u 'your-api-key:' \ -X POST \ -H 'Content-Type: application/json' \ -d ' { "basicInfo": { "name": "摩小卡", "age": 22, "email": "ceshi@ceshi.com", "gender": "男", "phone": "18612345678", "lastCompany": "Moka公司", "lastSpeciality": "计算机", "academicDegree": "本科" }, "educationInfo": [ { "school": "北京大学", "startDate": "2014-09", "endDate": "2017-06", "speciality": "软件工程", "academicDegree": "本科" } ], "experienceInfo": [ { "company": "Moka公司", "startDate": "2014-09", "endDate": "2017-06", "title": "初级工程师", "summary": "负责产品功能实现" } ], "languageInfo": [ { "language": "213", "level": "一般", "listenAndSpeak": "良好", "readAndWrite": "熟练" } ], "projectInfo": [ { "projectName": "项目1", "startDate": "2017-01", "endDate": "2017-11", "projectDescription": "项目功能描述", "title": "后端工程师", "responsibilities": "项目职责" } ], "practiceInfo": [ { "company": "Moka公司", "title": "实习工程师", "startDate": "2017-01", "endDate": "2017-11", "summary": "负责简单的功能实现" } ], "jobIntention": { "aimSalary": "7000-13000元/月", "forwardLocation": "北京" }, "selfDescription": { "personal": "人经历丰富,在校担任过部长,主持人以及新生教官。" }, "customFields": [ { "id": 1, "value": "aaa" "index": 0, }, { "id": 2, "value": "bbb" } ], "recommender": { "email": "zhangsan@mokahr.com", "name": "张三", "phone": "18612345678", "employeeId": "1" } }' 注:根据具体企业修改相关的字段信息 |
请求示例(from-data格式)
curl https://api.mokahr.com/api-platform/v1/jobs/moka/1234/apply \ -u 'your-api-key:' \ -X POST \ -H 'Content-Type: multipart/form-data' \ -F 'basicInfo={"name": "摩小卡", "age": 20, "gender": "男", "phone": "18612345678"}' \ -F 'educationInfo=[{"school": "北京大学", "startDate": "2014-01", "endDate": "2017-01", "speciality": "软件工程"}]' \ -F 'experienceInfo=[{"company": "宇宙科技公司", "startDate": "2017-01", "endDate": "2017-01", "title": "工程师"}]' \ -F 'projectInfo=[{"projectName": "项目1", "startDate":"2017-01","endDate":"2017-11","title":"工程师"}]' \ -F 'practiceInfo=[{"company":"Moka公司", "title":"实习工程师", "startDate":"2017-01", "endDate":"2017-11"}]' \ -F 'jobIntention={"aimSalary": "7000-13000/月", forwardLocation: "北京"}' \ -F 'selfDescription={personal: "人经历丰富,在校担任过部长,主持人以及新生教官。"}' \ -F 'customFields=[{"id": "1", "value": "aaa"}, {"id": "2", "value": "bbb"}]' \ -F 'recommender={"email": "ceshi@ceshi.com","name": "摩小卡","phone":"186xxxxxxxx","employeeId":"1"}' \ -F 'resume=@/path/to/resume/摩小卡.pdf' \ -F 'attachments=@/path/to/attachments/attach1.txt' \ -F 'attachments=@/path/to/attachments/attach2.txt' |
C 、注意事项
|