reizee/api

此包的最新版本(dev-main)没有可用的许可证信息。

dev-main 2022-02-23 13:38 UTC

This package is auto-updated.

Last update: 2024-09-23 19:08:10 UTC


README

要求

  • PHP 7.2 或更高版本
  • cURL 支持
  • Laravel 6+

安装

composer require reizee/api

发布配置文件

php artisan vendor:publish --provider="Reizee\Api\ReizeeApiServiceProvider" --tag="config"

认证

打开文件 config/reizee.php 并按示例进行配置

<?php

return [
    'api' => [
        'version' => 'BasicAuth',
        'BasicAuth' => [
            'baseUrl'          => 'https://{DOMAIN}',
            'userName'         => 'USER',
            'password'         => 'PASSWORD',
        ],
    ]
];

如何使用

<?php

// Authenticate
$auth = \ReizeeApi::authenticate();

// Init the api Object
$api =  \ReizeeApi::newApi('contacts', $auth);

// Create a contact and return the result
$result = $api->create([
            'email' => 'contato@reizee.com.br',
            'firstname' => 'Reizee',
            'tags' => ['tag-1', 'tag-2'],
            'custom_field_x' => 'custom'
        ]);
...

API

联系人

使用此端点来操作和获取 Reizee 联系人的详细信息。

<?php
// Auth
$auth = \ReizeeApi::authenticate();

// Init the api
$api =  \ReizeeApi::newApi('contacts', $auth);

获取联系人

<?php

//...
$contact = $api->get($id);
    "contact": {
        "id": 47,
        "dateAdded": "2020-07-21T12:27:12-05:00",
        "createdBy": 1,
        "createdByUser": "Joe Smith",
        "dateModified": "2020-07-21T14:12:03-05:00",
        "modifiedBy": 1,
        "modifiedByUser": "Joe Smith",
        "owner": {
            "id": 1,
            "username": "joesmith",
            "firstName": "Joe",
            "lastName": "Smith"
        },
        "points": 10,
        "lastActive": "2020-07-21T14:19:37-05:00",
        "dateIdentified": "2020-07-21T12:27:12-05:00",
        "color": "ab5959",
        "ipAddresses": {
            "111.111.111.111": {
                "ipAddress": "111.111.111.111",
                "ipDetails": {
                    "city": "",
                    "region": "",
                    "country": "",
                    "latitude": "",
                    "longitude": "",
                    "isp": "",
                    "organization": "",
                    "timezone": ""
                }
            }
        },
        "fields": {
            "core": {
                "title": {
                    "id": "1",
                    "label": "Title",
                    "alias": "title",
                    "type": "lookup",
                    "group": "core",
                    "value": "Mr"
                },
                "firstname": {
                    "id": "2",
                    "label": "First Name",
                    "alias": "firstname",
                    "type": "text",
                    "group": "core",
                    "value": "Jim"
                },

                "...": {
                    "..." : "..."
                }

            },
            "social": {
                "twitter": {
                    "id": "17",
                    "label": "Twitter",
                    "alias": "twitter",
                    "type": "text",
                    "group": "social",
                    "value": "jimcontact"
                },

                "...": {
                    "..." : "..."
                }

            },
            "personal": [],
            "professional": [],
            "all": {
                "title": "Mr",
                "firstname": "Jim",
                "twitter": "jimcontact",

                "...": "..."
            }
        }
    }

通过 ID 获取单个联系人。

HTTP 请求

GET /contacts/ID

响应

预期响应代码:200

请参阅 JSON 代码示例。

** 联系人属性 **

列出联系人

<?php

//...
$contacts = $api->getList($searchFilter, $start, $limit, $orderBy, $orderByDir, $publishedOnly, $minimal);
{
    "total": "1",
    "contacts": {
        "47": {
            "id": 47,
            "isPublished": true,
            "dateAdded": "2020-07-21T12:27:12-05:00",
            "createdBy": 1,
            "createdByUser": "Joe Smith",
            "dateModified": "2020-07-21T14:12:03-05:00",
            "modifiedBy": 1,
            "modifiedByUser": "Joe Smith",
            "owner": {
                "id": 1,
                "username": "joesmith",
                "firstName": "Joe",
                "lastName": "Smith"
            },
            "points": 10,
            "lastActive": "2020-07-21T14:19:37-05:00",
            "dateIdentified": "2020-07-21T12:27:12-05:00",
            "color": "ab5959",
            "ipAddresses": {
                "111.111.111.111": {
                    "ipAddress": "111.111.111.111",
                    "ipDetails": {
                        "city": "",
                        "region": "",
                        "country": "",
                        "latitude": "",
                        "longitude": "",
                        "isp": "",
                        "organization": "",
                        "timezone": ""
                    }
                }
            },
            "fields": {
                "core": {
                    "title": {
                        "id": "1",
                        "label": "Title",
                        "alias": "title",
                        "type": "lookup",
                        "group": "core",
                        "value": "Mr"
                    },
                    "firstname": {
                        "id": "2",
                        "label": "First Name",
                        "alias": "firstname",
                        "type": "text",
                        "group": "core",
                        "value": "Jim"
                    },

                    "...": {
                        "..." : "..."
                    }
                },
                "social": {
                    "twitter": {
                        "id": "17",
                        "label": "Twitter",
                        "alias": "twitter",
                        "type": "text",
                        "group": "social",
                        "value": "jimcontact"
                    },

                    "...": {
                        "..." : "..."
                    }
                },
                "personal": [],
                "professional": [],
                "all": {
                    "title": "Mr",
                    "firstname": "Jim",
                    "twitter": "jimcontact",

                    "...": "..."
                }
            },
            "tags": [{
              "tag": "aTag"
            },
            {
              "tag": "bTag"
            }],
            "utmtags" : [{
              "id": 1,
              "query": {
                "page": "asd",
                "cid": "fb1"
              },
              "referer": "https://example.com/",
              "remoteHost": "example.com",
              "userAgent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0",
              "utmCampaign": "abcampaign",
              "utmContent": "page",
              "utmMedium": "social",
              "utmSource": "fb",
              "utmTerm": "test1"
            }],
            "doNotContact": [{
                "id": 2,
                "reason": 2,
                "comments": "",
                "channel": "email",
                "channelId": null
            }]
        }
    }
}

获取联系人列表。

HTTP 请求

GET /contacts

** 查询参数 **

高级过滤

在某些情况下,您可能想要根据特定值进行过滤。使用如下 URL 参数

在 PHP 中

$where = [
  [
    'col' => 'phone',
    'expr' => 'in',
    'val' => '444444444,888888888',
  ]
];

此设计允许在同一个请求中添加多个条件。

如果您不使用 PHP,以下是上述代码的 URL 编码示例:GET https://[your_reizee_domain]/api/contacts?where%5B0%5D%5Bcol%5D=phone&where%5B0%5D%5Bexpr%5D=in&where%5B0%5D%5Bval%5D=444444444,888888888

可用表达式的列表

响应

预期响应代码:200

请参阅 JSON 代码示例。

** 属性 **

获取联系人 相同。

创建联系人

<?php

$data = array(
    'firstname' => 'Jim',
    'lastname'  => 'Contact',
    'email'     => 'jim@his-site.com',
    'ipAddress' => $_SERVER['REMOTE_ADDR'],
    'overwriteWithBlank' => true,
);

$contact = $api->create($data);

创建一个新的联系人。

HTTP 请求

POST /contacts/new

** 请求参数 **

响应

预期响应代码:201

** 属性 **

获取联系人 相同。

创建批量联系人

<?php

$data = array(
    array(
	'firstname' => 'Jim',
	'lastname'  => 'Contact',
	'email'     => 'jim@his-site.com',
	'ipAddress' => $_SERVER['REMOTE_ADDR']
    ),
    array(
    	'firstname' => 'John',
	'lastname'  => 'Doe',
	'email'     => 'john@his-site.com',
	'ipAddress' => $_SERVER['REMOTE_ADDR']
    )
);
$contact = $api->createBatch($data);

创建一批新的联系人。

HTTP 请求

POST /contacts/batch/new

** 请求参数 **

响应

预期响应代码:201

** 属性 **

联系人数组。记录与 获取联系人 相同。

编辑联系人

<?php

$id   = 1;
$data = array(
    'email'     => 'jim-new-address@his-site.com',
    'ipAddress' => $_SERVER['REMOTE_ADDR'],    
);

// Create new a contact of ID 1 is not found?
$createIfNotFound = true;

$contact = $api->edit($id, $data, $createIfNotFound);

编辑一个新的联系人。请注意,这支持 PUT 或 PATCH,具体取决于所需的行为。

** PUT ** 在给定的 ID 不存在时创建联系人,并清除所有联系人信息,然后添加请求中的信息。 PATCH 如果不存在具有给定 ID 的联系人,则失败,并使用请求中的值更新联系人字段值。

HTTP 请求

要编辑联系人并在联系人不存在时返回 404

PATCH /contacts/ID/edit

要编辑联系人并在联系人不存在时创建一个新的

PUT /contacts/ID/edit

** 请求参数 **

响应

如果 PUT,则如果编辑联系人,预期响应代码为 200;如果创建联系人,则预期响应代码为 201

如果 PATCH,则预期响应代码为 200

** 属性 **

获取联系人 相同。

注意:要删除联系人的标签,请在标签前添加减号 -。例如:tags: ['one', '-two'] - 在请求体中发送此内容将在联系人中添加标签 one 并从联系人中删除标签 two

编辑批量联系人

<?php

$data = array(
    array(
        'id'        => 1,
        'firstname' => 'Jim',
        'lastname'  => 'Contact',
        'email'     => 'jim@his-site.com',
        'ipAddress' => $_SERVER['REMOTE_ADDR']
    ),
    array(
        'id'        => 1,
        'firstname' => 'John',
        'lastname'  => 'Doe',
        'email'     => 'john@his-site.com',
        'ipAddress' => $_SERVER['REMOTE_ADDR']
    )
);

$contact = $api->editBatch($data);

在一个请求中编辑多个联系人。请注意,这支持 PUT 或 PATCH,具体取决于所需的行为。

PUT 在给定的 ID 不存在时创建联系人,并清除所有联系人信息,然后添加请求中的信息。 PATCH 如果不存在具有给定 ID 的联系人,则失败,并使用请求中的值更新联系人字段值。

HTTP 请求

要编辑联系人并在联系人不存在时返回 404

PATCH /contacts/batch/edit

要编辑联系人并在联系人不存在时创建一个新的

PUT /contacts/batch/edit

请求参数

响应

如果 PUT,则如果编辑联系人,预期响应代码为 200;如果创建联系人,则预期响应代码为 201

如果 PATCH,则预期响应代码为 200

属性

联系人数组。记录与获取联系人相同。

注意:要删除联系人的标签,请在标签前添加减号 -。例如:tags: ['one', '-two'] - 在请求体中发送此内容将在联系人中添加标签 one 并从联系人中删除标签 two

删除联系人

<?php

$contact = $api->delete($id);

删除一个联系人。

HTTP 请求

DELETE /contacts/ID/delete

响应

预期响应代码:200

** 属性 **

获取联系人 相同。

批量删除联系人

<?php
$data = array(1, 2);
$contact = $api->deleteBatch($data);

删除联系人。

HTTP 请求

DELETE /contacts/batch/delete

如果您不使用PHP,这里是一个URL示例

DELETE https://[您的Reizee域名]/api/contacts/batch/delete?ids=1,2

响应

预期响应代码:200

属性

联系人数组。记录与获取联系人相同。

添加勿扰

<?php

$api->addDnc($contactId, $channel, $reason, $channelId, $comments);
{
  "channelId": "26",
  "reason": "Integration issued DNC",
  "comments": "Unsubscribed via API"
}

将联系人添加到勿扰列表

HTTP 请求

要将勿扰条目添加到联系人中

POST /contacts/ID/dnc/CHANNEL/add

数据参数(可选)

响应

获取联系人 相同。

从勿扰中删除

<?php
$api->removeDnc($contactId, $channel);

从勿扰列表中删除联系人

HTTP 请求

要从联系人中删除勿扰条目

POST /contacts/ID/dnc/CHANNEL/remove

数据参数(可选)

响应

获取联系人 相同。

添加UTM标签

<?php

$data = array(
    'utm_campaign' => 'apicampaign',
    'utm_source'   => 'fb',
    'utm_medium'   => 'social',
    'utm_content'  => 'fbad',
    'utm_term'     => 'reizee api',
    'useragent'    => 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0',
    'url'          => '/product/fbad01/',
    'referer'      => 'https://google.com/q=reizee+api',
    'query'        => ['cid'=>'abc','cond'=>'new'], // or as string with "cid=abc&cond=new"
    'remotehost'   => 'example.com',
    'lastActive'   => '2020-01-17T00:30:08+00:00'
 );
$api->addUtm($contactId, $data);

向联系人添加UTM标签

HTTP 请求

要将UTM标签条目添加到联系人中

POST /contacts/ID/utm/add

UTM参数(必需)

虽然参数数组是必需的,但每个UTM标签条目是可选的。

响应

获取联系人相同,但增加了UTM标签。

从联系人中删除UTM标签

<?php
$api->removeUtm($contactId, $utmId);

从联系人中删除一组UTM标签

HTTP 请求

要从联系人中删除UTM标签

POST /contacts/ID/utm/UTMID/remove

数据参数

无要求。

响应

获取联系人相同,但不包括已删除的UTM标签。

添加积分

<?php

$data = array(
	 'eventName' => 'Score via api',
	 'actionName' => 'Adding',
 );
$api->addPoints($contactId, $pointDelta, $data);

添加联系人积分

HTTP 请求

向联系人添加积分,如果找不到线索则返回404

POST /contacts/ID/points/plus/POINTS

数据参数(可选)

响应

预期响应代码:200

{
    "success": true
}

减去积分

<?php

$data = array(
	 'eventname' => 'Score via api',
	 'actionname' => 'Subtracting',
 );
$api->subtractPoints($contactId, $pointDelta, $data);

减去联系人积分

HTTP 请求

从联系人中减去积分,如果找不到联系人则返回404

POST /contacts/ID/points/minus/POINTS

数据参数(可选)

响应

预期响应代码:200

{
    "success": true
}

列出可用的所有者

<?php

$owners = $api->getOwners();
[
  {
    "id": 1,
    "firstName": "Joe",
    "lastName": "Smith"
  },
  {
    "id": 2,
    "firstName": "Jane",
    "lastName": "Smith"
  }
]

获取可用于创建/编辑时分配联系人的所有者列表。

HTTP 请求

GET /contacts/list/owners

响应

预期响应代码:200

**所有者属性**

列出可用的字段

<?php

$fields = $api->getFieldList();
{
    "1": {
        "id": 1,
        "label": "Title",
        "alias": "title",
        "type": "lookup",
        "group": "core",
        "order": 1
    },
    "2": {
        "id": 2,
        "label": "First Name",
        "alias": "firstname",
        "type": "text",
        "group": "core",
        "order": 2
    },
    "3": {
        "id": 3,
        "label": "Last Name",
        "alias": "lastname",
        "type": "text",
        "group": "core",
        "order": 3
    },

    "...": {
        "..." : "..."
    }
}

获取包括自定义字段在内的可用联系人字段列表。

HTTP 请求

GET /contacts/list/fields

响应

预期响应代码:200

**字段属性**

列出联系人笔记

<?php

$notes = $api->getContactNotes($id, $searchFilter, $start, $limit, $orderBy, $orderByDir, $publishedOnly, $minimal);
{
    "total": 1,
    "notes": [
        {
              "id": 1,
              "text": "<p>Jim is super cool!</p>",
              "type": "general",
              "dateTime": "2020-07-23T13:14:00-05:00"
        }
    ]
}

获取特定联系人的笔记列表。

HTTP 请求

GET /contacts/ID/notes

** 查询参数 **

响应

预期响应代码:200

**笔记属性**

获取段成员资格

<?php

$segments = $api->getContactSegments($id);
{
    "total": 1,
    "segments": {
        "3": {
            "id": 3,
            "name": "New Contacts",
            "alias": "newcontacts"
        }
    }
}

获取联系人所在的联系人段列表。

HTTP 请求

GET /contacts/ID/segments

响应

预期响应代码:200

**列表属性**

更改列表成员资格

获取活动成员资格

<?php

$campaigns = $api->getContactCampaigns($id);
{
    "total": 1,
    "campaigns": {
        "1": {
            "id": 1,
            "name": "Welcome Campaign",
            "dateAdded": "2020-07-21T14:11:47-05:00",
            "manuallyRemoved": false,
            "manuallyAdded": false,
            "list_membership": [
                3
            ]
        }
    }
}

获取联系人所在的活动列表。

HTTP 请求

GET /contacts/ID/campaigns

响应

预期响应代码:200

**列表属性**

更改活动成员资格

活动

获取联系人的事件

<?php

$events = $api->getEvents($id, $search, $includeEvents, $excludeEvents, $orderBy, $orderByDir, $page);

警告:已弃用。请使用getActivityForContact代替。

** 查询参数 **

{
  "events":[
    {
      "event":"lead.identified",
      "icon":"fa-user",
      "eventType":"Contact identified",
      "eventPriority":-4,
      "timestamp":"2020-06-09T21:39:08+00:00",
      "featured":true
    }
  ],
  "filters":{
    "search":"",
    "includeEvents":[
      "lead.identified"
    ],
    "excludeEvents":[]
  },
  "order":[
    "",
    "ASC"
  ],
  "types":{
    "lead.ipadded":"Accessed from IP",
    "asset.download":"Asset downloaded",
    "campaign.event":"Campaign action triggered",
    "lead.create":"Contact created",
    "lead.identified":"Contact identified",
    "lead.donotcontact":"Do not contact",
    "email.read":"Email read",
    "email.sent":"Email sent",
    "email.failed":"Failed",
    "form.submitted":"Form submitted",
    "page.hit":"Page hit",
    "point.gained":"Point gained",
    "stage.changed":"Stage changed",
    "lead.utmtagsadded":"UTM tags recorded",
    "page.videohit":"Video View Event"
  },
  "total":1,
  "page":1,
  "limit":25,
  "maxPages":1
}

获取联系人创建的事件列表。

HTTP 请求

GET /contacts/ID/events

警告:已弃用。请使用GET /contacts/ID/activity代替。

响应

预期响应代码:200

**列表属性**

获取特定联系人的活动事件

<?php

$events = $api->getActivityForContact($id, $search, $includeEvents, $excludeEvents, $orderBy, $orderByDir, $page, $dateFrom, $dateTo);

** 查询参数 **

{
  "events":[
    {
      "event":"lead.identified",
      "icon":"fa-user",
      "eventType":"Contact identified",
      "eventPriority":-4,
      "timestamp":"2020-06-09T21:39:08+00:00",
      "featured":true
    }
  ],
  "filters":{
    "search":"",
    "includeEvents":[
      "lead.identified"
    ],
    "excludeEvents":[]
  },
  "order":[
    "",
    "ASC"
  ],
  "types":{
    "asset.download": "Asset downloaded",
    "campaign.event": "Campaign action triggered",
    "campaign.event.scheduled": "Campaign event scheduled",
    "lead.donotcontact": "Do not contact",
    "email.failed": "Email failed",
    "email.read": "Email read",
    "email.sent": "Email sent",
    "form.submitted": "Form submitted",
    "lead.imported": "Imported",
    "page.hit": "Page hit",
    "point.gained": "Point gained",
    "stage.changed": "Stage changed",
    "lead.utmtagsadded": "UTM tags recorded",
    "page.videohit": "Video view event"
  },
  "total":1,
  "page":1,
  "limit":25,
  "maxPages":1
}

获取联系人创建的事件列表。

HTTP 请求

GET /contacts/ID/activity

响应

预期响应代码:200

**列表属性**

获取所有联系人的活动事件

<?php

$events = $api->getActivity($search, $includeEvents, $excludeEvents, $orderBy, $orderByDir, $page, $dateFrom, $dateTo);

** 查询参数 **

 {
  "events": [
    {
      "event": "meeting.attended",
      "eventId": "meeting.attended65",
      "eventLabel": "Attended meeting - Reizee instance",
      "eventType": "Meeting attendance",
      "timestamp": "2020-08-03T21:03:04+00:00",
      "contactId": "12180",
      "details": {
        "eventName": "reizee-instance",
        "eventId": "371343405",
        "eventDesc": "Reizee instance",
        "joinUrl": ""
      }
    },
    {
      "event": "webinar.attended",
      "eventId": "webinar.attended67",
      "eventLabel": "Attended webinar - Reizee",
      "eventType": "Webinar attendance",
      "timestamp": "2020-08-03T21:03:04+00:00",
      "contactId": "12180",
      "details": {
        "eventName": "reizee",
        "eventId": "530287395",
        "eventDesc": "Reizee",
        "joinUrl": ""
      }
    },
    {
      "event": "webinar.registered",
      "eventId": "webinar.registered66",
      "eventLabel": "Registered for webinar - Reizee",
      "eventType": "Webinar registered for",
      "timestamp": "2020-08-03T21:03:04+00:00",
      "contactId": "12180",
      "details": {
        "eventName": "reizee",
        "eventId": "530287395",
        "eventDesc": "Reizee",
        "joinUrl": "https://global.gotowebinar.com/join/xxx/xxx"
      }
    },
    {
      "event": "campaign.event",
      "eventId": "campaign.event892",
      "eventLabel": {
        "label": "Contact field value \/ Campaign Date",
        "href": "\/s\/campaigns\/view\/498"
      },
      "eventType": "Campaign action triggered",
      "timestamp": "2020-08-03T00:58:25+00:00",
      "contactId": "12281",
      "details": {
        "log": {
          "dateTriggered": "2020-08-03T00:58:25+00:00",
          "metadata": [],
          "type": "lead.field_value",
          "isScheduled": "0",
          "logId": "892",
          "eventId": "1457",
          "campaignId": "498",
          "eventName": "Contact field value",
          "campaignName": "Campaign Date"
        }
      }
    },
    {
      "event": "email.sent",
      "eventId": "email.sent796",
      "eventLabel": {
        "label": "2020-05-23 - Email - Leads - Nurture Flow (Monica) 1",
        "href": "http:\/\/reizee.dev\/email\/view\/597a116ae69ca",
        "isExternal": true
      },
      "eventType": "Email sent",
      "timestamp": "2020-07-27T16:14:34+00:00",
      "contactId": "16419",
      "details": {
        "stat": {
          "id": "796",
          "dateSent": "2020-07-27T16:14:34+00:00",
          "subject": "How to make the case for digital",
          "isRead": "0",
          "isFailed": "0",
          "viewedInBrowser": "0",
          "retryCount": "0",
          "idHash": "597a116ae69ca",
          "openDetails": [],
          "storedSubject": "How to make the case for digital",
          "timeToRead": false,
          "emailId": "78",
          "emailName": "2020-05-23 - Email - Leads - Nurture Flow (Monica) 1"
        },
        "type": "sent"
      }
    },
    {
      "event": "email.read",
      "eventId": "email.read769",
      "eventLabel": {
        "label": "Custom Email: device test",
        "href": "http:\/\/reizee.dev\/email\/view\/5966b0cd571f4",
        "isExternal": true
      },
      "eventType": "Email read",
      "timestamp": "2020-07-12T23:30:56+00:00",
      "contactId": "13930",
      "details": {
        "stat": {
          "id": "769",
          "dateRead": "2020-07-12T23:30:56+00:00",
          "dateSent": "2020-07-12T23:29:17+00:00",
          "isRead": "1",
          "isFailed": "0",
          "viewedInBrowser": "0",
          "retryCount": "0",
          "idHash": "5966b0cd571f4",
          "openDetails": [
            {
              "datetime": "2020-07-12 23:30:56",
              "useragent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/59.0.3071.115 Safari\/537.36",
              "inBrowser": false
            },
            {
              "datetime": "2020-07-13 02:18:51",
              "useragent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/59.0.3071.115 Safari\/537.36",
              "inBrowser": false
            }
          ],
          "storedSubject": "device test",
          "timeToRead": "PT1M39S"
        },
        "type": "read"
      }
    },
    {
      "event": "lead.ipadded",
      "eventId": "lead.ipadded3263",
      "eventLabel": "127.0.0.1",
      "eventType": "Accessed from IP",
      "timestamp": "2020-07-27T03:09:09+00:00",
      "contactId": "3263",
      "details": []
    },
    {
      "event": "form.submitted",
      "eventId": "form.submitted503",
      "eventLabel": {
        "label": "3586 Test",
        "href": "\/s\/forms\/view\/143"
      },
      "eventType": "Form submitted",
      "timestamp": "2020-07-27T03:09:07+00:00",
      "contactId": "16417",
      "details": {
        "submission": {
          "id": 503,
          "ipAddress": {
            "ip": "127.0.0.1"
          },
          "form": {
            "id": 143,
            "name": "3586 Test",
            "alias": "3586_test"
          },
          "dateSubmitted": "2020-07-27T03:09:07+00:00",
          "referer": "http:\/\/reizee.dev\/form\/143",
          "results": {
            "form_id": "143",
            "email": "formtest7@test.com",
            "f_name": ""
          }
        },
        "form": {
          "id": 143,
          "name": "3586 Test",
          "alias": "3586_test"
        },
        "page": {}
      }
    },
    {
      "event": "page.hit",
      "eventLabel": {
        "label": "Test",
        "href": "\/s\/pages\/view\/8"
      },
      "eventType": "Page hit",
      "timestamp": "2020-07-21T20:36:49+00:00",
      "contactId": "16380",
      "details": {
        "hit": {
          "userAgent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/59.0.3071.115 Safari\/537.36",
          "dateHit": "2020-07-21T20:36:49+00:00",
          "url": "http:\/\/reizee.dev\/uncategorized\/translation-test1",
          "query": {
            "pageUrl": "http:\/\/reizee.dev\/uncategorized\/translation-test1"
          },
          "clientInfo": "a:6:{s:4:\"type\";s:7:\"browser\";s:4:\"name\";s:6:\"Chrome\";s:10:\"short_name\";s:2:\"CH\";s:7:\"version\";s:4:\"59.0\";s:6:\"engine\";s:5:\"Blink\";s:14:\"engine_version\";s:0:\"\";}",
          "device": "desktop",
          "deviceOsName": "Mac",
          "deviceBrand": "",
          "deviceModel": "",
          "pageId": "8"
        }
      }
    },
    {
      "event": "point.gained",
      "eventLabel": "2: Page Hit Test \/ 20",
      "eventType": "Point gained",
      "timestamp": "2020-07-20T22:38:28+00:00",
      "contactId": "16379",
      "details": {
        "log": {
          "eventName": "2: Page Hit Test",
          "actionName": "hit",
          "dateAdded": "2020-07-20T22:38:28+00:00",
          "type": "url",
          "delta": "20",
          "id": "2"
        }
      }
    },
    {
      "event": "lead.imported",
      "eventId": "lead.imported6324",
      "eventType": "Imported",
      "eventLabel": {
        "label": "Contact import failed from FakeNameGenerator.com_20d05d9c.csv",
        "href": "\/s\/contacts\/import\/view\/4"
      },
      "timestamp": "2020-07-17T21:42:35+00:00",
      "details": {
        "id": "6324",
        "bundle": "lead",
        "object": "import",
        "action": "failed",
        "properties": {
          "line": 2001,
          "file": "FakeNameGenerator.com_20d05d9c.csv",
          "error": "No data found"
        },
        "userId": "2",
        "userName": "Bob Smith",
        "objectId": "4",
        "dateAdded": "2020-07-17T21:42:35+00:00"
      }
    },
    {
      "event": "asset.download",
      "eventId": "asset.download11",
      "eventLabel": {
        "label": "Download Reizee",
        "href": "\/s\/assets\/view\/1"
      },
      "eventType": "Asset downloaded",
      "timestamp": "2020-04-04T01:49:13+00:00",
      "details": {
        "asset": {
          "id": 1,
          "title": "Download Reizee",
          "alias": "download-reizee",
          "description": "test"
        },
        "assetDownloadUrl": "http:\/\/reizee.dev\/asset\/1:download-reizee"
      }
    },
  ],
  "filters": {
    "search": "",
    "includeEvents": [],
    "excludeEvents": []
  },
  "order": [
    "timestamp",
    "DESC"
  ],
  "types": {
    "lead.ipadded": "Accessed from IP",
    "asset.download": "Asset downloaded",
    "meeting.attended": "Attended meeting",
    "webinar.attended": "Attended webinar",
    "campaign.event": "Campaign action triggered",
    "campaign.event.scheduled": "Campaign event scheduled",
    "lead.donotcontact": "Do not contact",
    "email.failed": "Email failed",
    "email.read": "Email read",
    "email.sent": "Email sent",
    "form.submitted": "Form submitted",
    "lead.imported": "Imported",
    "page.hit": "Page hit",
    "point.gained": "Point gained",
    "meeting.registered": "Registered for meeting",
    "webinar.registered": "Registration to Webinar",
    "stage.changed": "Stage changed",
    "lead.utmtagsadded": "UTM tags recorded",
    "page.videohit": "Video view event"
  },
  "total": 12,
  "page": 1,
  "limit": 25,
  "maxPages": 1
}

HTTP 请求

GET /contacts/activity

响应

预期响应代码:200

**列表属性**

获取联系人的公司

<?php

$companies = $api->getContactCompanies($contactId);

```json
{
  "total":1,
  "companies":[
    {
      "company_id":"420",
      "date_associated":"2020-12-27 15:03:43",
      "is_primary":"0",
      "companyname":"test",
      "companyemail":"test@company.com",
      "companycity":"Raleigh",
      "score":"0",
      "date_added":"2020-12-27 15:03:42"
    }
  ]
}

获取联系人所属的公司列表。

HTTP 请求

GET /contacts/ID/companies

响应

预期响应代码:200

列表属性

获取联系人的设备

<?php

$devices = $api->getContactDevices($contactId);

```json
{
  "total":1,
  "devices":[
    {
      "id":60,
      "lead":[],
      "clientInfo":[],
      "device":"desktop",
      "deviceOsName":"Ubuntu",
      "deviceOsShortName":"UBT",
      "deviceOsPlatform":"x64"
    }
  ]
}

获取联系人使用的设备列表。

HTTP 请求

GET /contacts/ID/devices

响应

预期响应代码:200

列表属性

公司

使用此端点获取Reizee公司的详细信息或操作联系人公司成员资格。

<?php
// Auth
$auth = \ReizeeApi::authenticate();

// Init the api
$api =  \ReizeeApi::newApi('companies', $auth);

获取公司

<?php

//...
$company = $api->get($id);
{  
    "company":{  
        "isPublished":true,
        "dateAdded":"2020-10-25T09:46:36+00:00",
        "createdBy":1,
        "createdByUser":"John Doe",
        "dateModified":null,
        "modifiedBy":null,
        "modifiedByUser":null,
        "id":176,
        "fields":{  
            "core":{  
                "companywebsite":{  
                    "id":"91",
                    "label":"Website",
                    "alias":"companywebsite",
                    "type":"url",
                    "group":"core",
                    "field_order":"8",
                    "object":"company",
                    "value":null
                },
                [...]
            },
            "professional":{  
                "companyannual_revenue":{  
                    "id":"90",
                    "label":"Annual Revenue",
                    "alias":"companyannual_revenue",
                    "type":"number",
                    "group":"professional",
                    "field_order":"10",
                    "object":"company",
                    "value":null
                },
                [...]
            },
            "other":[],
            "all":{  
                "companywebsite":null,
                "companycountry":null,
                "companyzipcode":null,
                "companystate":null,
                "companycity":"Raleigh",
                "companyphone":null,
                "companyemail":"test@company.com",
                "companyaddress2":null,
                "companyaddress1":null,
                "companyname":"test",
                "companyannual_revenue":null,
                "companyfax":null,
                "companynumber_of_employees":null,
                "companydescription":null
            }
        }
    }
}

通过ID获取单个公司。

HTTP 请求

GET /companies/ID

响应

预期响应代码:200

请参阅 JSON 代码示例。

公司属性

列出联系人公司

<?php

//...
$companies = $api->getList($searchFilter, $start, $limit, $orderBy, $orderByDir, $publishedOnly, $minimal);
{
  "total": 13,
  "companies": {
    "176": {  
      "isPublished":true,
      "dateAdded":"2020-10-25T09:46:36+00:00",
      "createdBy":1,
      "createdByUser":"John Doe",
      "dateModified":null,
      "modifiedBy":null,
      "modifiedByUser":null,
      "id":176,
      "fields":{  
        "core":{  
            "companywebsite":{  
                "id":"91",
                "label":"Website",
                "alias":"companywebsite",
                "type":"url",
                "group":"core",
                "field_order":"8",
                "object":"company",
                "value":null
            },
            [...]
        },
        "professional":{  
            "companyannual_revenue":{  
                "id":"90",
                "label":"Annual Revenue",
                "alias":"companyannual_revenue",
                "type":"number",
                "group":"professional",
                "field_order":"10",
                "object":"company",
                "value":null
            },
            [...]
        },
        "other":[],
        "all":{  
            "companywebsite":null,
            "companycountry":null,
            "companyzipcode":null,
            "companystate":null,
            "companycity":"Raleigh",
            "companyphone":null,
            "companyemail":"test@company.com",
            "companyaddress2":null,
            "companyaddress1":null,
            "companyname":"test",
            "companyannual_revenue":null,
            "companyfax":null,
            "companynumber_of_employees":null,
            "companydescription":null
        }
    }
  },
  [...]
  }
}

返回用户可用的联系人公司列表。此列表不可筛选。

HTTP 请求

GET /companies

** 查询参数 **

响应

预期响应代码:200

请参阅 JSON 代码示例。

公司属性

创建公司

<?php

$data = array(
    'companyname' => 'test',
    'companyemail' => 'test@company.com',
    'companycity' => 'Raleigh',
    'overwriteWithBlank' => true
);

$company = $api->create($data);

创建一个新公司。

HTTP 请求

POST /companies/new

请求参数

响应

预期响应代码:201

属性

获取公司相同。

编辑公司

<?php

$id   = 1;
$data = array(
    'companyname' => 'test',
    'companyemail' => 'test@company.com',
    'companycity' => 'Raleigh',
);

// Create new a company of ID 1 is not found?
$createIfNotFound = true;

$company = $api->edit($id, $data, $createIfNotFound);

编辑新公司。注意,这支持PUT或PATCH,具体取决于所需的操作。

PUT:如果指定的ID不存在,将创建公司并清除所有公司信息,然后添加请求中的信息。PATCH:如果指定ID的公司不存在,将失败;如果存在,则更新公司字段值,使用请求中的值。

HTTP 请求

编辑公司并在找不到公司时返回404。

PATCH /companies/ID/edit

编辑公司,如果找不到公司则创建一个新公司。

PUT /companies/ID/edit

请求参数

响应

如果使用PUT,如果公司被编辑,则预期响应代码是200;如果创建,则是201

如果 PATCH,则预期响应代码为 200

属性

获取公司相同。

删除公司

<?php

$company = $api->delete($id);

删除公司。

HTTP 请求

DELETE /companies/ID/delete

响应

预期响应代码:200

属性

获取公司相同。

向公司添加联系人

<?php

//...
$response = $api->addContact($companyId, $contactId);
if (!isset($response['success'])) {
    // handle error
}
{
    "success": true
}

手动将联系人添加到特定公司。

HTTP 请求

POST /companies/COMPANY_ID/contact/CONTACT_ID/add

响应

预期响应代码:200

请参阅 JSON 代码示例。

从公司删除联系人

<?php

//...
$response = $api->removeContact($contactId, $companyId);
if (empty($response['success'])) {
    // handle error
}
{
    "success": true
}

手动从特定公司删除联系人。

HTTP 请求

POST /companies/COMPANY_ID/contact/CONTACT_ID/remove

响应

预期响应代码:200

请参阅 JSON 代码示例。

活动

使用此端点获取关于Reizee活动的详细信息。

<?php
// Auth
$auth = \ReizeeApi::authenticate();

// Init the api
$api =  \ReizeeApi::newApi('campaigns', $auth);

获取活动

<?php

//...
$campaign = $api->get($id);
{
    "campaign": {
        "id": 3,
        "name": "Email A/B Test",
        "description": null,
        "isPublished": true,
        "publishUp": null,
        "publishDown": null,
        "dateAdded": "2020-07-15T15:06:02-05:00",
        "createdBy": 1,
        "createdByUser": "Joe Smith",
        "dateModified": "2020-07-20T13:11:56-05:00",
        "modifiedBy": 1,
        "modifiedByUser": "Joe Smith",
        "category": null,
        "events": {
            "28": {
                "id": 28,
                "type": "lead.changepoints",
                "eventType": "action",
                "name": "Adjust lead points",
                "description": null,
                "order": 1,
                "properties": {
                  "points": 20
                },
                "triggerDate": null,
                "triggerInterval": 1,
                "triggerIntervalUnit": "d",
                "triggerMode": "immediate",
                "children": [],
                "parent": null,
                "decisionPath": null
            }
        }
    }
}

通过ID获取单个活动。

HTTP 请求

GET /campaigns/ID

响应

预期响应代码:200

请参阅 JSON 代码示例。

活动属性

事件属性

列出活动

<?php
// ...

$campaigns = $api->getList($searchFilter, $start, $limit, $orderBy, $orderByDir, $publishedOnly, $minimal);
{
    "total": 1,
    "campaigns": {
        "3": {
            "id": 3,
            "name": "Welcome Campaign",
            "description": null,
            "isPublished": true,
            "publishUp": null,
            "publishDown": null,
            "dateAdded": "2020-07-15T15:06:02-05:00",
            "createdBy": 1,
            "createdByUser": "Joe Smith",
            "dateModified": "2020-07-20T13:11:56-05:00",
            "modifiedBy": 1,
            "modifiedByUser": "Joe Smith",
            "category": null,
            "events": {
                "22": {
                    "id": 22,
                    "type": "email.send",
                    "eventType": "action",
                    "name": "Send welcome email",
                    "description": null,
                    "order": 1,
                    "properties": {
                        "email": 1
                    },
                    "triggerMode": "immediate",
                    "triggerDate": null,
                    "triggerInterval": null,
                    "triggerIntervalUnit": null,
                    "children": [],
                    "parent": null,
                    "decisionPath": null
                },
                "28": {
                    "id": 28,
                    "type": "lead.changepoints",
                    "eventType": "action",
                    "name": "Adjust lead points",
                    "description": null,
                    "order": 2,
                    "properties": {
                        "points": 20
                    },
                    "triggerMode": "immediate",                
                    "triggerDate": null,
                    "triggerInterval": null,
                    "triggerIntervalUnit": null,
                    "children": [],
                    "parent": null,
                    "decisionPath": null
                }
            }
        }
    }
}

HTTP 请求

GET /campaigns

查询参数

响应

预期响应代码:200

请参阅 JSON 代码示例。

属性

获取活动相同。

列出活动联系人

此端点是基本别名,与具有指定'campaign_leads'表和campaign_id的统计端点相同。其他参数与统计端点相同。

<?php
// ...

$response = $api->getContacts($campaignId, $start, $limit, $order, $where);
{  
  "total":"1",
  "contacts":[  
    {  
      "campaign_id":"311",
      "lead_id":"3126",
      "date_added":"2020-01-25 15:11:10",
      "manually_removed":"0",
      "manually_added":"1"
    }
  ]
}

HTTP 请求

GET /campaigns/ID/contacts

查询参数

响应

预期响应代码:200

请参阅 JSON 代码示例。

创建活动

<?php

$data = array(
    'name'        => 'Campaign A',
    'description' => 'This is my first campaign created via API.',
    'isPublished' => 1
);

$campaign = $api->create($data);

创建新的活动。要查看有关活动事件等的高级示例,请参阅单元测试。

HTTP 请求

POST /campaigns/new

请求参数

响应

预期响应代码:201

属性

获取活动相同。

克隆活动

<?php

$camnpaignId = 12;

$campaign = $api->cloneCampaign($campaignId);

克隆现有活动。要查看有关活动事件等的高级示例,请参阅单元测试。

HTTP 请求

POST /campaigns/clone/CAMPAIGN_ID

响应

预期响应代码:201

属性

获取活动相同。

编辑活动

<?php

$id   = 1;
$data = array(
    'name'        => 'New campaign name',
    'isPublished' => 0
);

// Create new a campaign of ID 1 is not found?
$createIfNotFound = true;

$campaign = $api->edit($id, $data, $createIfNotFound);

编辑新活动。注意,这支持PUT或PATCH,具体取决于所需的操作。

PUT:如果指定的ID不存在,将创建活动并清除所有活动信息,然后添加请求中的信息。PATCH:如果指定ID的活动不存在,则失败;如果存在,则更新活动字段值,使用请求中的值。

HTTP 请求

编辑活动并在找不到活动时返回404。

PATCH /campaigns/ID/edit

编辑活动并在找不到活动时创建一个新活动。

PUT /campaigns/ID/edit

请求参数

响应

如果使用PUT,如果活动被编辑,则预期响应代码是200;如果创建,则是201

如果 PATCH,则预期响应代码为 200

属性

获取活动相同。

删除活动

<?php

$campaign = $api->delete($id);

删除活动。

HTTP 请求

DELETE /campaigns/ID/delete

响应

预期响应代码:200

属性

获取活动相同。

向活动添加联系人

<?php

//...
$response = $api->addContact($campaignId, $contactId);
if (!isset($response['success'])) {
    // handle error
}
{
    "success": true
}

手动将联系人添加到特定活动。

HTTP 请求

POST /campaigns/CAMPAIGN_ID/contact/CONTACT_ID/add

响应

预期响应代码:200

请参阅 JSON 代码示例。

从活动删除联系人

<?php

//...
$response = $listApi->removeContact($campaignId, $contactId);
if (!isset($response['success'])) {
    // handle error
}
{
    "success": true
}

手动从特定活动删除联系人。

HTTP 请求

POST /campaigns/CAMPAIGN_ID/contact/CONTACT_ID/remove

响应

预期响应代码:200

请参阅 JSON 代码示例。