You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SugarCRM如何通过ID以外的字段(如邮箱)获取记录?

解决SugarCRM通过邮箱获取记录的API方案

刚好之前处理过类似的需求,给你几个基于SugarCRM官方API的可行方案,完美替代旧版本中直接传SQL的方式:

  • 方法一:用GET请求的过滤参数直接查询
    SugarCRM的REST API允许在GET请求的URL里拼接过滤条件,完全不需要请求体。比如要从Contacts模块拉取邮箱为user@example.com的记录,请求URL可以这么写:

    /Contacts?filter[0][email1][$equals]=user@example.com
    

    几个关键点要注意:

    • 把Contacts换成你实际要查的模块(比如Leads、Accounts)
    • email1是多数模块里主邮箱字段的默认名称,拿不准的话可以调用/Contacts/metadata接口查看模块的字段元数据,确认准确的字段名
    • $equals是精确匹配,要是需要模糊匹配邮箱前缀之类的,可以换成$contains,官方文档里还有其他操作符可选,比如$starts_with
  • 方法二:用POST请求的过滤端点实现复杂查询
    如果需要多条件组合查询,或者想更灵活地控制返回字段,推荐用/filter端点,这个是官方专门用来替代旧版SQL查询的方案。示例请求如下:
    请求URL:/Contacts/filter
    请求体(JSON格式):

    {
      "filter": [
        {
          "email1": {"$equals": "user@example.com"}
        }
      ],
      "fields": ["id", "full_name", "email1"],
      "max_num": 1
    }
    

    这里fields指定只返回你需要的字段,max_num设为1可以只拿第一条匹配的记录(如果你的邮箱是唯一的,这个很实用)。

  • 方法三:全局搜索API跨模块查找
    要是不确定记录在哪个模块,或者需要同时查多个模块,用全局搜索接口更方便:

    /search?q=user@example.com&modules=Contacts,Leads
    

    这个请求会在Contacts和Leads模块里搜索包含该邮箱的记录,返回结果会明确标注所属模块和记录详情。

小提醒:以上都是官方支持的标准用法,比旧版直接传SQL安全得多,也更兼容新版本的SugarCRM。记得确保你的API账号有对应模块的读取权限,而且目标邮箱字段在角色权限里是可见的哦。

内容的提问来源于stack exchange,提问作者Azoulay Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:19:17