使用SugarCRM 9.0 API过滤电子邮件地址

问题描述

我正在使用v11 API服务集成SugarCRM 9.0。我现在很努力地用给定的电子邮件地址过滤联系人。根据新的SugarCRM,将在名为email的字段下获取联系人的电子邮件地址,该字段是一个数组。

请求端点:https://mysugarcrm.org/rest/v11/Contacts/filter

输入过滤器数组:

[
    "filter" => [[
        'email1' => 'test+1@test.com'
    ]]
]

在这里您可以看到我将email#作为过滤器参数传递,该参数仅适用于主要电子邮件地址,但是当联系人添加了多个电子邮件地址时,如何创建过滤器?在子表达式$contains$in的帮助下,我尝试了很少的组合,但是没有一个帮助。

为获得更好的图片,这是示例电子邮件数组,比没有过滤器的联系人记录中的电子邮件数组-

[
    {
        "id": "c02c12c3-4569-3456-xxxxxxxxx","first_name": "test","last_name": "test"
        "email": [
            {
                "email_address": "test@test.com","primary_address": true,"reply_to_address": false,"invalid_email": false,"opt_out": false,"email_address_id": "b11h2344-4568-xxxx-xxxxxxxxxxx"
            },{
                "email_address": "test+1@test.com","primary_address": false,{
                "email_address": "test+2@test.com","email_address_id": "b11h2344-4568-xxxx-xxxxxxxxxxx"
            }
        ],"module": "Contacts"
    },{
        ....
    },{
        ....
    }
]

在这里您可以看到email是我想根据email_address过滤的对象数组。

解决方法

我遇到了一个解决方案。

在图片后面实际上有一个名为email_addresses的过滤器字段,我们可以用来添加过滤器。这是我的新过滤器数组-

[
    "filter" => [[
        "email_addresses.email_address":"test@test.com"
    ]]
]

因此,无论您必须从电子邮件类型的字段中获取数据时,都可以使用此解决方案。适用于每个模块。