Yoxel Sync API (2.0)

Introduction

Yoxel Sync API is designed for business platform (CRM, Project Management, HR, Accounting, ...) providers or platform addon providers that want to leverage Yoxel's advanced sync logic to automate calendar, email, contacts, task synchronization for their users. The sync engine is capable of:

  • Two way calendar sync between user mailboxes and the business platform
  • One way email logging to the business platform with contact/opportunity matching
  • Two way contacts sync between user mailboxes and the business platform
  • Two way tasks sync between user mailboxes and the business platform

A custom connector for your business system needs to be created by Yoxel. Please contact us at support@yoxel.com to get your client id and secret and discuss the connector development.

Authentication

  • Signup to get a user access token - for every new syncing user you need to call a signup method with your client id/secret. An access token will be returned that should be used to access all other API endpoints on behalf of the user.
  • Basic Auth - specify a user access token for username and 'X' for password. When getting 401 Unauthorized response try calling the 'signup' method again to refresh the user access token.

Signup

User signup operations

User token lookup

Notes...

Request Body schema: application/json
appId
string
apiHash
string
compExtId
string
userExtId
string
requestTimestamp
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "apiHash": "string",
  • "compExtId": "string",
  • "userExtId": "string",
  • "requestTimestamp": 0
}

Response samples

Content type
application/json
{
  • "accessToken": "string"
}

New user/team registration

Notes...

query Parameters
mode
string
Enum: "NEWAHI" "LOOKUP"
Request Body schema: application/json
required

Signup request payload

appId
string
compExtId
string
userExtId
string
userLogin
string
firstName
string
lastName
string
email
string
companyName
string
sandbox
boolean
admin
boolean
instanceUrl
string
timeZoneInfo
string
apiHash
string
requestTimestamp
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "compExtId": "string",
  • "userExtId": "string",
  • "userLogin": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "companyName": "string",
  • "sandbox": true,
  • "admin": true,
  • "instanceUrl": "string",
  • "timeZoneInfo": "string",
  • "apiHash": "string",
  • "requestTimestamp": 0
}

Response samples

Content type
application/json
{
  • "accessToken": "string"
}

Company

Company profile operations

Get the user's company information

Notes...

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "domain": "string",
  • "extId": "string",
  • "options": 0,
  • "regDate": "2019-08-24T14:15:22Z",
  • "supportEmail": "string",
  • "apiSignupUrl": "string",
  • "useAurinko": true
}

Update current company information

Notes...

Request Body schema: application/json
id
integer <int32>
name
string
domain
string
extId
string
options
integer <int32>
regDate
string <date-time>
supportEmail
string
apiSignupUrl
string
useAurinko
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "domain": "string",
  • "extId": "string",
  • "options": 0,
  • "regDate": "2019-08-24T14:15:22Z",
  • "supportEmail": "string",
  • "apiSignupUrl": "string",
  • "useAurinko": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "domain": "string",
  • "extId": "string",
  • "options": 0,
  • "regDate": "2019-08-24T14:15:22Z",
  • "supportEmail": "string",
  • "apiSignupUrl": "string",
  • "useAurinko": true
}

Users

User profile opreations

Get sync users

Notes...

query Parameters
search
string

Search text

sort
string

Sort by, i.e. createTime

flags
string

Flags to filter by, i.e. errors, disabled,...

offset
integer <int32>

Pagination offset

limit
integer <int32>

Pagination limit

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "summary": [
    ]
}

Template groups

Teamplate group operations

Get service templates for the group

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a service template in the group

Notes...

path Parameters
gid
required
integer <int32>

Template group id

query Parameters
state
string
Request Body schema: application/json
required

Service template payload

id
integer <int32>
groupId
integer <int32>
displayName
string
extName
string
username
string
password
string
testMailbox
string
type
string
Enum: "GOOGLE" "EXCHANGE" "OFFICE365" "IMAP"
extId
string
serverId
string
emailDomain
string
authDomains
string
offline
boolean
shared
boolean
trustServer
boolean
scanEmail
boolean
object (APIServiceScanEmail)
fwdEmail
boolean
object (APIServiceFwdEmail)
importContacts
boolean
object (APIServiceContact)
importTasks
boolean
object (APIServiceTask)
importEvents
boolean
object (APIServiceCalendar)
lockService
boolean
updateService
boolean
updateTime
string <date-time>
authRedirectUrl
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "groupId": 0,
  • "displayName": "string",
  • "extName": "string",
  • "username": "string",
  • "password": "string",
  • "testMailbox": "string",
  • "type": "GOOGLE",
  • "extId": "string",
  • "serverId": "string",
  • "emailDomain": "string",
  • "authDomains": "string",
  • "offline": true,
  • "shared": true,
  • "trustServer": true,
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "lockService": true,
  • "updateService": true,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "authRedirectUrl": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "groupId": 0,
  • "displayName": "string",
  • "extName": "string",
  • "username": "string",
  • "password": "string",
  • "type": "GOOGLE",
  • "extId": "string",
  • "serverId": "string",
  • "emailDomain": "string",
  • "authDomains": "string",
  • "offline": true,
  • "shared": true,
  • "trustServer": true,
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "lockService": true,
  • "updateService": true,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "authRedirectUrl": "string"
}

Get all template groups

Notes...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new template group

Notes...

header Parameters
User-Agent
string
Request Body schema: application/json
required

Template group payload

id
integer <int32>
name
string
emailDomains
string
divisions
string
departments
string
profiles
string
roles
string
extPortalUrl
string
preserveServices
boolean
default
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "emailDomains": "string",
  • "divisions": "string",
  • "departments": "string",
  • "profiles": "string",
  • "roles": "string",
  • "extPortalUrl": "string",
  • "preserveServices": true,
  • "default": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "emailDomains": "string",
  • "divisions": "string",
  • "departments": "string",
  • "profiles": "string",
  • "roles": "string",
  • "extPortalUrl": "string",
  • "preserveServices": true,
  • "default": true
}

Get a template group by id

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "emailDomains": "string",
  • "divisions": "string",
  • "departments": "string",
  • "profiles": "string",
  • "roles": "string",
  • "extPortalUrl": "string",
  • "preserveServices": true,
  • "default": true
}

Update template group

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Request Body schema: application/json
required

Template group payload

id
integer <int32>
name
string
emailDomains
string
divisions
string
departments
string
profiles
string
roles
string
extPortalUrl
string
preserveServices
boolean
default
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "emailDomains": "string",
  • "divisions": "string",
  • "departments": "string",
  • "profiles": "string",
  • "roles": "string",
  • "extPortalUrl": "string",
  • "preserveServices": true,
  • "default": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "emailDomains": "string",
  • "divisions": "string",
  • "departments": "string",
  • "profiles": "string",
  • "roles": "string",
  • "extPortalUrl": "string",
  • "preserveServices": true,
  • "default": true
}

Delete template group

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Responses

Get sync settings for the group

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Responses

Response samples

Content type
application/json
{
  • "templGroupId": 0,
  • "mailboxTypes": [
    ],
  • "logEmail": true,
  • "emailSkipDomains": "string",
  • "emailSkipContactTags": "string",
  • "emailRelateAllContacts": true,
  • "emailFetchAttachments": true,
  • "emailCreateContacts": true,
  • "emailCreateLeads": true,
  • "emailApplyFilters": true,
  • "emailAutoDetectDeal": true,
  • "emailLogAsTask": true,
  • "emailCreateCompany": true,
  • "emailAllowPrivateContacts": true,
  • "syncCalendar": true,
  • "calSyncDirection": "BOTH",
  • "calSkipDomains": "string",
  • "calSkipContactTags": "string",
  • "calRelateAllContacts": true,
  • "calCreateContacts": true,
  • "calCreateLeads": true,
  • "calCreateCompany": true,
  • "calAllowPrivateContacts": true,
  • "calMatchRequired": true,
  • "calSyncPrivate": true,
  • "calFetchAttachments": true,
  • "calMailboxSyncAll": true,
  • "calMailboxSyncTags": "string",
  • "calMailboxSyncMeetingsOnly": true,
  • "calPastWeeks": 0,
  • "calFutureWeeks": 0,
  • "calConvertLeads": true,
  • "calAutoDetectDeal": true,
  • "syncContacts": true,
  • "contSyncDirection": "BOTH",
  • "contCreateCompany": true,
  • "contAllowPrivateContacts": true,
  • "contPortalSyncAll": true,
  • "contMailboxSyncAll": true,
  • "contPortalSyncMine": true,
  • "contPortalSyncTags": "string",
  • "contMailboxSyncTags": "string",
  • "contMailboxSyncDeleted": true,
  • "syncTasks": true,
  • "taskSyncDirection": "BOTH",
  • "taskMailboxSyncAll": true,
  • "taskMailboxSyncTags": "string",
  • "filterFields": {
    },
  • "tagModeFields": {
    },
  • "defaultFields": {
    },
  • "emailFields": {
    },
  • "mappingFields": {
    },
  • "updateCondFields": {
    },
  • "deleteFlagFields": {
    },
  • "regexMatchFields": {
    },
  • "regexExtractFields": {
    },
  • "standardMappingFields": {
    },
  • "emailLogRelationConf": {
    },
  • "calLogRelationConf": {
    },
  • "contactFields": [
    ]
}

Update sync settings for the group

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Request Body schema: application/json
required

Sync settings payload

templGroupId
integer <int32>
mailboxTypes
Array of strings
Items Enum: "EXCHANGE" "OFFICE365" "IMAP" "GOOGLE" "MCTRADE" "HUBSPOTEM" "ECLIPSEEM" "ACTIVE_CAMPAIGN" "CONSTANT_CONTACT" "TEAMWORKPM" "SFORCE" "ZURMO" "SUGARCRM" "SALESFLARE" "CLIENTIFY" "HUBSPOT" "CREATIO" "PIPEDRIVE" "REPFABRIC"
logEmail
boolean
emailSkipDomains
string
emailSkipContactTags
string
emailRelateAllContacts
boolean
emailFetchAttachments
boolean
emailCreateContacts
boolean
emailCreateLeads
boolean
emailApplyFilters
boolean
emailAutoDetectDeal
boolean
emailLogAsTask
boolean
emailCreateCompany
boolean
emailAllowPrivateContacts
boolean
syncCalendar
boolean
calSyncDirection
string
Enum: "BOTH" "TO_PORTAL" "FROM_PORTAL" "CUSTOM"
calSkipDomains
string
calSkipContactTags
string
calRelateAllContacts
boolean
calCreateContacts
boolean
calCreateLeads
boolean
calCreateCompany
boolean
calAllowPrivateContacts
boolean
calMatchRequired
boolean
calSyncPrivate
boolean
calFetchAttachments
boolean
calMailboxSyncAll
boolean
calMailboxSyncTags
string
calMailboxSyncMeetingsOnly
boolean
calPastWeeks
integer <int32>
calFutureWeeks
integer <int32>
calConvertLeads
boolean
calAutoDetectDeal
boolean
syncContacts
boolean
contSyncDirection
string
Enum: "BOTH" "TO_PORTAL" "FROM_PORTAL" "CUSTOM"
contCreateCompany
boolean
contAllowPrivateContacts
boolean
contPortalSyncAll
boolean
contMailboxSyncAll
boolean
contPortalSyncMine
boolean
contPortalSyncTags
string
contMailboxSyncTags
string
contMailboxSyncDeleted
boolean
syncTasks
boolean
taskSyncDirection
string
Enum: "BOTH" "TO_PORTAL" "FROM_PORTAL" "CUSTOM"
taskMailboxSyncAll
boolean
taskMailboxSyncTags
string
object
object
object
object
object
object
object
object
object
object
object (APILogRelationConf)
object (APILogRelationConf)
Array of objects (APIContactField)

Responses

Request samples

Content type
application/json
{
  • "templGroupId": 0,
  • "mailboxTypes": [
    ],
  • "logEmail": true,
  • "emailSkipDomains": "string",
  • "emailSkipContactTags": "string",
  • "emailRelateAllContacts": true,
  • "emailFetchAttachments": true,
  • "emailCreateContacts": true,
  • "emailCreateLeads": true,
  • "emailApplyFilters": true,
  • "emailAutoDetectDeal": true,
  • "emailLogAsTask": true,
  • "emailCreateCompany": true,
  • "emailAllowPrivateContacts": true,
  • "syncCalendar": true,
  • "calSyncDirection": "BOTH",
  • "calSkipDomains": "string",
  • "calSkipContactTags": "string",
  • "calRelateAllContacts": true,
  • "calCreateContacts": true,
  • "calCreateLeads": true,
  • "calCreateCompany": true,
  • "calAllowPrivateContacts": true,
  • "calMatchRequired": true,
  • "calSyncPrivate": true,
  • "calFetchAttachments": true,
  • "calMailboxSyncAll": true,
  • "calMailboxSyncTags": "string",
  • "calMailboxSyncMeetingsOnly": true,
  • "calPastWeeks": 0,
  • "calFutureWeeks": 0,
  • "calConvertLeads": true,
  • "calAutoDetectDeal": true,
  • "syncContacts": true,
  • "contSyncDirection": "BOTH",
  • "contCreateCompany": true,
  • "contAllowPrivateContacts": true,
  • "contPortalSyncAll": true,
  • "contMailboxSyncAll": true,
  • "contPortalSyncMine": true,
  • "contPortalSyncTags": "string",
  • "contMailboxSyncTags": "string",
  • "contMailboxSyncDeleted": true,
  • "syncTasks": true,
  • "taskSyncDirection": "BOTH",
  • "taskMailboxSyncAll": true,
  • "taskMailboxSyncTags": "string",
  • "filterFields": {
    },
  • "tagModeFields": {
    },
  • "defaultFields": {
    },
  • "emailFields": {
    },
  • "mappingFields": {
    },
  • "updateCondFields": {
    },
  • "deleteFlagFields": {
    },
  • "regexMatchFields": {
    },
  • "regexExtractFields": {
    },
  • "standardMappingFields": {
    },
  • "emailLogRelationConf": {
    },
  • "calLogRelationConf": {
    },
  • "contactFields": [
    ]
}

Response samples

Content type
application/json
{
  • "templGroupId": 0,
  • "mailboxTypes": [
    ],
  • "logEmail": true,
  • "emailSkipDomains": "string",
  • "emailSkipContactTags": "string",
  • "emailRelateAllContacts": true,
  • "emailFetchAttachments": true,
  • "emailCreateContacts": true,
  • "emailCreateLeads": true,
  • "emailApplyFilters": true,
  • "emailAutoDetectDeal": true,
  • "emailLogAsTask": true,
  • "emailCreateCompany": true,
  • "emailAllowPrivateContacts": true,
  • "syncCalendar": true,
  • "calSyncDirection": "BOTH",
  • "calSkipDomains": "string",
  • "calSkipContactTags": "string",
  • "calRelateAllContacts": true,
  • "calCreateContacts": true,
  • "calCreateLeads": true,
  • "calCreateCompany": true,
  • "calAllowPrivateContacts": true,
  • "calMatchRequired": true,
  • "calSyncPrivate": true,
  • "calFetchAttachments": true,
  • "calMailboxSyncAll": true,
  • "calMailboxSyncTags": "string",
  • "calMailboxSyncMeetingsOnly": true,
  • "calPastWeeks": 0,
  • "calFutureWeeks": 0,
  • "calConvertLeads": true,
  • "calAutoDetectDeal": true,
  • "syncContacts": true,
  • "contSyncDirection": "BOTH",
  • "contCreateCompany": true,
  • "contAllowPrivateContacts": true,
  • "contPortalSyncAll": true,
  • "contMailboxSyncAll": true,
  • "contPortalSyncMine": true,
  • "contPortalSyncTags": "string",
  • "contMailboxSyncTags": "string",
  • "contMailboxSyncDeleted": true,
  • "syncTasks": true,
  • "taskSyncDirection": "BOTH",
  • "taskMailboxSyncAll": true,
  • "taskMailboxSyncTags": "string",
  • "filterFields": {
    },
  • "tagModeFields": {
    },
  • "defaultFields": {
    },
  • "emailFields": {
    },
  • "mappingFields": {
    },
  • "updateCondFields": {
    },
  • "deleteFlagFields": {
    },
  • "regexMatchFields": {
    },
  • "regexExtractFields": {
    },
  • "standardMappingFields": {
    },
  • "emailLogRelationConf": {
    },
  • "calLogRelationConf": {
    },
  • "contactFields": [
    ]
}

Get template group users

Notes...

path Parameters
gid
required
integer <int32>

Template group id

query Parameters
offset
integer <int32>
limit
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update or insert template group users

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Request Body schema: application/json
required

A list of template users to update or add

Array
active
boolean
skipSync
boolean
extId
required
string
extLogin
string
firstName
string
lastName
string
email
string
timeZoneInfo
string
admin
boolean
partnerUser
boolean

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
0
0

Publish templates

Notes...

path Parameters
gid
required
integer <int32>

Template group id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Authorization flow

Saving a new service/template auto geneartes an authorization url if authorization is required. Please examine the authRedirectUrl field in the newly created service (or template) and start an auth flow if a value is present. The authRedirectUrl will have an interal state attached to it, do not remove or override it.

"authRedirectUrl": "https://api.yoxel.com/api/v2/oauth/authorize?state=ehjva0dahh1uk19p"

Note: You need to specify your own return url by adding the &appCallback=<url> parameter.

When receiving a callback, expect the following query parameters: status ("success" or "error") and details (contains error details when status=error). Also, upon a successful authorization the service's authRedirectUrl field should become null and the authError field will be null too.

In some cases to avoid popup blocking in browsers you need to have the exact authorization url before you have saved a new service/template. Yoxel API provides the /preareState method for such a scenario (see Services/Templates for refernece). Make sure you are saving your new service/template with ?state=<state-from-prepareState> parameter then.

Start authorization flow

Start authorization flow for a service or template.

query Parameters
state
required
string

State from /prepareState or from saving a service/template

appCallback
required
string

A return url

Responses

Prepare auth state and url

To be used with /authorize if service/template has not been saved yet. Get the auth url from the Location header.

path Parameters
type
required
string
Enum: "SERVICE" "TEMPLATE"

Auth type

query Parameters
oid
integer <int32>

Service or Template Id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Service templates

Service template operations

Get service templates

Notes...

header Parameters
User-Agent
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a service template

Notes...

query Parameters
state
string

Authorization state

Request Body schema: application/json
required

Service payload

id
integer <int32>
groupId
integer <int32>
displayName
string
extName
string
username
string
password
string
testMailbox
string
type
string
Enum: "GOOGLE" "EXCHANGE" "OFFICE365" "IMAP"
extId
string
serverId
string
emailDomain
string
authDomains
string
offline
boolean
shared
boolean
trustServer
boolean
scanEmail
boolean
object (APIServiceScanEmail)
fwdEmail
boolean
object (APIServiceFwdEmail)
importContacts
boolean
object (APIServiceContact)
importTasks
boolean
object (APIServiceTask)
importEvents
boolean
object (APIServiceCalendar)
lockService
boolean
updateService
boolean
updateTime
string <date-time>
authRedirectUrl
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "groupId": 0,
  • "displayName": "string",
  • "extName": "string",
  • "username": "string",
  • "password": "string",
  • "testMailbox": "string",
  • "type": "GOOGLE",
  • "extId": "string",
  • "serverId": "string",
  • "emailDomain": "string",
  • "authDomains": "string",
  • "offline": true,
  • "shared": true,
  • "trustServer": true,
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "lockService": true,
  • "updateService": true,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "authRedirectUrl": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "groupId": 0,
  • "displayName": "string",
  • "extName": "string",
  • "username": "string",
  • "password": "string",
  • "type": "GOOGLE",
  • "extId": "string",
  • "serverId": "string",
  • "emailDomain": "string",
  • "authDomains": "string",
  • "offline": true,
  • "shared": true,
  • "trustServer": true,
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "lockService": true,
  • "updateService": true,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "authRedirectUrl": "string"
}

Get a service template

Notes...

path Parameters
tid
required
integer <int32>

Template id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "groupId": 0,
  • "displayName": "string",
  • "extName": "string",
  • "username": "string",
  • "password": "string",
  • "type": "GOOGLE",
  • "extId": "string",
  • "serverId": "string",
  • "emailDomain": "string",
  • "authDomains": "string",
  • "offline": true,
  • "shared": true,
  • "trustServer": true,
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "lockService": true,
  • "updateService": true,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "authRedirectUrl": "string"
}

Update a service template

Notes...

path Parameters
tid
required
integer <int32>

Template id

query Parameters
state
string

Authorization state

Request Body schema: application/json
required

Service payload

id
integer <int32>
groupId
integer <int32>
displayName
string
extName
string
username
string
password
string
testMailbox
string
type
string
Enum: "GOOGLE" "EXCHANGE" "OFFICE365" "IMAP"
extId
string
serverId
string
emailDomain
string
authDomains
string
offline
boolean
shared
boolean
trustServer
boolean
scanEmail
boolean
object (APIServiceScanEmail)
fwdEmail
boolean
object (APIServiceFwdEmail)
importContacts
boolean
object (APIServiceContact)
importTasks
boolean
object (APIServiceTask)
importEvents
boolean
object (APIServiceCalendar)
lockService
boolean
updateService
boolean
updateTime
string <date-time>
authRedirectUrl
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "groupId": 0,
  • "displayName": "string",
  • "extName": "string",
  • "username": "string",
  • "password": "string",
  • "testMailbox": "string",
  • "type": "GOOGLE",
  • "extId": "string",
  • "serverId": "string",
  • "emailDomain": "string",
  • "authDomains": "string",
  • "offline": true,
  • "shared": true,
  • "trustServer": true,
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "lockService": true,
  • "updateService": true,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "authRedirectUrl": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "groupId": 0,
  • "displayName": "string",
  • "extName": "string",
  • "username": "string",
  • "password": "string",
  • "type": "GOOGLE",
  • "extId": "string",
  • "serverId": "string",
  • "emailDomain": "string",
  • "authDomains": "string",
  • "offline": true,
  • "shared": true,
  • "trustServer": true,
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "lockService": true,
  • "updateService": true,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "authRedirectUrl": "string"
}

Delete a template

Notes...

path Parameters
tid
required
integer <int32>

Template id

Responses

Publish templates

Notes...

Request Body schema: application/json
required

Template id's

Array
integer <int32>

Responses

Request samples

Content type
application/json
[
  • 0
]

Me

Current user profile operations

Get the current user details

Notes...

header Parameters
User-Agent
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "uid": 0,
  • "name": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "addedBy": 0,
  • "extId": "string",
  • "timeZoneInfo": "string",
  • "disabled": true,
  • "admin": true,
  • "manager": true,
  • "setupWizard": true,
  • "syncEnabled": true,
  • "pkgCheckFailed": true,
  • "syncError": true,
  • "templCount": 0,
  • "accessToken": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastSynced": "2019-08-24T14:15:22Z",
  • "templGroupId": 0,
  • "templGroupName": "string",
  • "accountsSummary": [
    ],
  • "portalUrl": "string",
  • "useAurinko": true
}

Update the current user details

Notes...

Request Body schema: application/json
id
integer <int32>
uid
integer <int32>
name
string
firstName
string
lastName
string
email
string
addedBy
integer <int32>
extId
string
timeZoneInfo
string
disabled
boolean
admin
boolean
manager
boolean
setupWizard
boolean
syncEnabled
boolean
pkgCheckFailed
boolean
syncError
boolean
templCount
integer <int32>
accessToken
string
createdAt
string <date-time>
lastSynced
string <date-time>
templGroupId
integer <int32>
templGroupName
string
Array of objects (APIAccountInfo)
portalUrl
string
useAurinko
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "uid": 0,
  • "name": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "addedBy": 0,
  • "extId": "string",
  • "timeZoneInfo": "string",
  • "disabled": true,
  • "admin": true,
  • "manager": true,
  • "setupWizard": true,
  • "syncEnabled": true,
  • "pkgCheckFailed": true,
  • "syncError": true,
  • "templCount": 0,
  • "accessToken": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastSynced": "2019-08-24T14:15:22Z",
  • "templGroupId": 0,
  • "templGroupName": "string",
  • "accountsSummary": [
    ],
  • "portalUrl": "string",
  • "useAurinko": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "uid": 0,
  • "name": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "addedBy": 0,
  • "extId": "string",
  • "timeZoneInfo": "string",
  • "disabled": true,
  • "admin": true,
  • "manager": true,
  • "setupWizard": true,
  • "syncEnabled": true,
  • "pkgCheckFailed": true,
  • "syncError": true,
  • "templCount": 0,
  • "accessToken": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastSynced": "2019-08-24T14:15:22Z",
  • "templGroupId": 0,
  • "templGroupName": "string",
  • "accountsSummary": [
    ],
  • "portalUrl": "string",
  • "useAurinko": true
}

Delete the current user

Notes...

Responses

Authorization flow

Saving a new service/template auto geneartes an authorization url if authorization is required. Please examine the authRedirectUrl field in the newly created service (or template) and start an auth flow if a value is present. The authRedirectUrl will have an interal state attached to it, do not remove or override it.

"authRedirectUrl": "https://api.yoxel.com/api/v2/oauth/authorize?state=ehjva0dahh1uk19p"

Note: You need to specify your own return url by adding the &appCallback=<url> parameter.

When receiving a callback, expect the following query parameters: status ("success" or "error") and details (contains error details when status=error). Also, upon a successful authorization the service's authRedirectUrl field should become null and the authError field will be null too.

In some cases to avoid popup blocking in browsers you need to have the exact authorization url before you have saved a new service/template. Yoxel API provides the /preareState method for such a scenario (see Services/Templates for refernece). Make sure you are saving your new service/template with ?state=<state-from-prepareState> parameter then.

Start authorization flow

Start authorization flow for a service or template.

query Parameters
state
required
string

State from /prepareState or from saving a service/template

appCallback
required
string

A return url

Responses

Prepare auth state and url

To be used with /authorize if service/template has not been saved yet. Get the auth url from the Location header.

path Parameters
type
required
string
Enum: "SERVICE" "TEMPLATE"

Auth type

query Parameters
oid
integer <int32>

Service or Template Id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Services

Service/connector operations

Test service connection

Notes...

Request Body schema: application/json
required

Service payload

id
integer <int32>
templId
integer <int32>
type
string
Enum: "GOOGLE" "EXCHANGE" "OFFICE365" "HUBSPOTEM" "ECLIPSEEM" "SFORCE" "HUBSPOT" "SALESFLARE" "CLIENTIFY"
offline
boolean
displayName
string
extName
string
fullName
string
email
string
domain
string
authDomains
string
server
string
proxyServer
string
username
string
password
string
hasAurToken
boolean
aurToken
string
sandbox
boolean
object (APIServiceProps)
scanEmail
boolean
object (APIServiceScanEmail)
fwdEmail
boolean
object (APIServiceFwdEmail)
importContacts
boolean
object (APIServiceContact)
importTasks
boolean
object (APIServiceTask)
importEvents
boolean
object (APIServiceCalendar)
authRedirectUrl
string
appKeyPrefix
string
accessToken
string
refreshToken
string
templLocked
boolean
trustServer
boolean
authName
string
authError
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "templId": 0,
  • "type": "GOOGLE",
  • "offline": true,
  • "displayName": "string",
  • "extName": "string",
  • "fullName": "string",
  • "email": "string",
  • "domain": "string",
  • "authDomains": "string",
  • "server": "string",
  • "proxyServer": "string",
  • "username": "string",
  • "password": "string",
  • "hasAurToken": true,
  • "aurToken": "string",
  • "sandbox": true,
  • "syncData": {
    },
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "authRedirectUrl": "string",
  • "appKeyPrefix": "string",
  • "accessToken": "string",
  • "refreshToken": "string",
  • "templLocked": true,
  • "trustServer": true,
  • "authName": "string",
  • "authError": "string"
}

Get sync services/connectors

Notes...

query Parameters
extToken
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a service/connector

Notes...

query Parameters
state
string

Authorization state

Request Body schema: application/json
required

Service payload

id
integer <int32>
templId
integer <int32>
type
string
Enum: "GOOGLE" "EXCHANGE" "OFFICE365" "HUBSPOTEM" "ECLIPSEEM" "SFORCE" "HUBSPOT" "SALESFLARE" "CLIENTIFY"
offline
boolean
displayName
string
extName
string
fullName
string
email
string
domain
string
authDomains
string
server
string
proxyServer
string
username
string
password
string
hasAurToken
boolean
aurToken
string
sandbox
boolean
object (APIServiceProps)
scanEmail
boolean
object (APIServiceScanEmail)
fwdEmail
boolean
object (APIServiceFwdEmail)
importContacts
boolean
object (APIServiceContact)
importTasks
boolean
object (APIServiceTask)
importEvents
boolean
object (APIServiceCalendar)
authRedirectUrl
string
appKeyPrefix
string
accessToken
string
refreshToken
string
templLocked
boolean
trustServer
boolean
authName
string
authError
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "templId": 0,
  • "type": "GOOGLE",
  • "offline": true,
  • "displayName": "string",
  • "extName": "string",
  • "fullName": "string",
  • "email": "string",
  • "domain": "string",
  • "authDomains": "string",
  • "server": "string",
  • "proxyServer": "string",
  • "username": "string",
  • "password": "string",
  • "hasAurToken": true,
  • "aurToken": "string",
  • "sandbox": true,
  • "syncData": {
    },
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "authRedirectUrl": "string",
  • "appKeyPrefix": "string",
  • "accessToken": "string",
  • "refreshToken": "string",
  • "templLocked": true,
  • "trustServer": true,
  • "authName": "string",
  • "authError": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "templId": 0,
  • "type": "GOOGLE",
  • "offline": true,
  • "displayName": "string",
  • "extName": "string",
  • "fullName": "string",
  • "email": "string",
  • "domain": "string",
  • "authDomains": "string",
  • "server": "string",
  • "proxyServer": "string",
  • "username": "string",
  • "password": "string",
  • "hasAurToken": true,
  • "aurToken": "string",
  • "sandbox": true,
  • "syncData": {
    },
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "authRedirectUrl": "string",
  • "appKeyPrefix": "string",
  • "accessToken": "string",
  • "refreshToken": "string",
  • "templLocked": true,
  • "trustServer": true,
  • "authName": "string",
  • "authError": "string"
}

Get a service/connector

Notes...

path Parameters
sid
required
integer <int32>

Service id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "templId": 0,
  • "type": "GOOGLE",
  • "offline": true,
  • "displayName": "string",
  • "extName": "string",
  • "fullName": "string",
  • "email": "string",
  • "domain": "string",
  • "authDomains": "string",
  • "server": "string",
  • "proxyServer": "string",
  • "username": "string",
  • "password": "string",
  • "hasAurToken": true,
  • "aurToken": "string",
  • "sandbox": true,
  • "syncData": {
    },
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "authRedirectUrl": "string",
  • "appKeyPrefix": "string",
  • "accessToken": "string",
  • "refreshToken": "string",
  • "templLocked": true,
  • "trustServer": true,
  • "authName": "string",
  • "authError": "string"
}

Update service/connector

Notes...

path Parameters
sid
required
integer <int32>

Service id

query Parameters
state
string

Authorization state

Request Body schema: application/json
required

Service payload

id
integer <int32>
templId
integer <int32>
type
string
Enum: "GOOGLE" "EXCHANGE" "OFFICE365" "HUBSPOTEM" "ECLIPSEEM" "SFORCE" "HUBSPOT" "SALESFLARE" "CLIENTIFY"
offline
boolean
displayName
string
extName
string
fullName
string
email
string
domain
string
authDomains
string
server
string
proxyServer
string
username
string
password
string
hasAurToken
boolean
aurToken
string
sandbox
boolean
object (APIServiceProps)
scanEmail
boolean
object (APIServiceScanEmail)
fwdEmail
boolean
object (APIServiceFwdEmail)
importContacts
boolean
object (APIServiceContact)
importTasks
boolean
object (APIServiceTask)
importEvents
boolean
object (APIServiceCalendar)
authRedirectUrl
string
appKeyPrefix
string
accessToken
string
refreshToken
string
templLocked
boolean
trustServer
boolean
authName
string
authError
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "templId": 0,
  • "type": "GOOGLE",
  • "offline": true,
  • "displayName": "string",
  • "extName": "string",
  • "fullName": "string",
  • "email": "string",
  • "domain": "string",
  • "authDomains": "string",
  • "server": "string",
  • "proxyServer": "string",
  • "username": "string",
  • "password": "string",
  • "hasAurToken": true,
  • "aurToken": "string",
  • "sandbox": true,
  • "syncData": {
    },
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "authRedirectUrl": "string",
  • "appKeyPrefix": "string",
  • "accessToken": "string",
  • "refreshToken": "string",
  • "templLocked": true,
  • "trustServer": true,
  • "authName": "string",
  • "authError": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "templId": 0,
  • "type": "GOOGLE",
  • "offline": true,
  • "displayName": "string",
  • "extName": "string",
  • "fullName": "string",
  • "email": "string",
  • "domain": "string",
  • "authDomains": "string",
  • "server": "string",
  • "proxyServer": "string",
  • "username": "string",
  • "password": "string",
  • "hasAurToken": true,
  • "aurToken": "string",
  • "sandbox": true,
  • "syncData": {
    },
  • "scanEmail": true,
  • "scanEmails": {
    },
  • "fwdEmail": true,
  • "fwdEmails": {
    },
  • "importContacts": true,
  • "contacts": {
    },
  • "importTasks": true,
  • "tasks": {
    },
  • "importEvents": true,
  • "calendar": {
    },
  • "authRedirectUrl": "string",
  • "appKeyPrefix": "string",
  • "accessToken": "string",
  • "refreshToken": "string",
  • "templLocked": true,
  • "trustServer": true,
  • "authName": "string",
  • "authError": "string"
}

Delete one service/connector

Notes...

path Parameters
sid
required
integer <int32>

Service id

Responses

getCategories

path Parameters
sid
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getContactTags

path Parameters
sid
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getMailFolders

path Parameters
sid
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getProjects

path Parameters
sid
required
integer <int32>
query Parameters
type
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getScanFilters

path Parameters
sid
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get sync settings

Get user sync configuration for one portal service and one or more mailbox services.

Responses

Response samples

Content type
application/json
{
  • "mailboxTypes": [
    ],
  • "logEmail": true,
  • "emailSkipDomains": "string",
  • "emailSkipContactTags": "string",
  • "emailRelateAllContacts": true,
  • "emailFetchAttachments": true,
  • "emailCreateLeads": true,
  • "emailCreateContacts": true,
  • "emailApplyFilters": true,
  • "emailAutoDetectDeal": true,
  • "emailLogAsTask": true,
  • "emailCreateCompany": true,
  • "emailAllowPrivateContacts": true,
  • "syncCalendar": true,
  • "calSyncDirection": "BOTH",
  • "calSkipDomains": "string",
  • "calSkipContactTags": "string",
  • "calRelateAllContacts": true,
  • "calCreateLeads": true,
  • "calCreateContacts": true,
  • "calCreateCompany": true,
  • "calAllowPrivateContacts": true,
  • "calMatchRequired": true,
  • "calSyncPrivate": true,
  • "calFetchAttachments": true,
  • "calMailboxSyncAll": true,
  • "calMailboxSyncTags": "string",
  • "calMailboxSyncMeetingsOnly": true,
  • "calPastWeeks": 0,
  • "calFutureWeeks": 0,
  • "calConvertLeads": true,
  • "calAutoDetectDeal": true,
  • "syncContacts": true,
  • "contSyncDirection": "BOTH",
  • "contCreateCompany": true,
  • "contAllowPrivateContacts": true,
  • "contPortalSyncAll": true,
  • "contMailboxSyncAll": true,
  • "contPortalSyncMine": true,
  • "contPortalSyncTags": "string",
  • "contMailboxSyncTags": "string",
  • "contMailboxSyncDeleted": true,
  • "syncTasks": true,
  • "taskSyncDirection": "BOTH",
  • "taskMailboxSyncAll": true,
  • "taskMailboxSyncTags": "string"
}

Update sync settings

Configure a two-way or one-way user sync for one portal service and one or more mailbox services.

Request Body schema: application/json
required

Sync settings payload

mailboxTypes
Array of strings
Items Enum: "EXCHANGE" "OFFICE365" "IMAP" "GOOGLE" "MCTRADE" "HUBSPOTEM" "ECLIPSEEM" "ACTIVE_CAMPAIGN" "CONSTANT_CONTACT" "TEAMWORKPM" "SFORCE" "ZURMO" "SUGARCRM" "SALESFLARE" "CLIENTIFY" "HUBSPOT" "CREATIO" "PIPEDRIVE" "REPFABRIC"
logEmail
boolean
emailSkipDomains
string
emailSkipContactTags
string
emailRelateAllContacts
boolean
emailFetchAttachments
boolean
emailCreateLeads
boolean
emailCreateContacts
boolean
emailApplyFilters
boolean
emailAutoDetectDeal
boolean
emailLogAsTask
boolean
emailCreateCompany
boolean
emailAllowPrivateContacts
boolean
syncCalendar
boolean
calSyncDirection
string
Enum: "BOTH" "TO_PORTAL" "FROM_PORTAL" "CUSTOM"
calSkipDomains
string
calSkipContactTags
string
calRelateAllContacts
boolean
calCreateLeads
boolean
calCreateContacts
boolean
calCreateCompany
boolean
calAllowPrivateContacts
boolean
calMatchRequired
boolean
calSyncPrivate
boolean
calFetchAttachments
boolean
calMailboxSyncAll
boolean
calMailboxSyncTags
string
calMailboxSyncMeetingsOnly
boolean
calPastWeeks
integer <int32>
calFutureWeeks
integer <int32>
calConvertLeads
boolean
calAutoDetectDeal
boolean
syncContacts
boolean
contSyncDirection
string
Enum: "BOTH" "TO_PORTAL" "FROM_PORTAL" "CUSTOM"
contCreateCompany
boolean
contAllowPrivateContacts
boolean
contPortalSyncAll
boolean
contMailboxSyncAll
boolean
contPortalSyncMine
boolean
contPortalSyncTags
string
contMailboxSyncTags
string
contMailboxSyncDeleted
boolean
syncTasks
boolean
taskSyncDirection
string
Enum: "BOTH" "TO_PORTAL" "FROM_PORTAL" "CUSTOM"
taskMailboxSyncAll
boolean
taskMailboxSyncTags
string

Responses

Request samples

Content type
application/json
{
  • "mailboxTypes": [
    ],
  • "logEmail": true,
  • "emailSkipDomains": "string",
  • "emailSkipContactTags": "string",
  • "emailRelateAllContacts": true,
  • "emailFetchAttachments": true,
  • "emailCreateLeads": true,
  • "emailCreateContacts": true,
  • "emailApplyFilters": true,
  • "emailAutoDetectDeal": true,
  • "emailLogAsTask": true,
  • "emailCreateCompany": true,
  • "emailAllowPrivateContacts": true,
  • "syncCalendar": true,
  • "calSyncDirection": "BOTH",
  • "calSkipDomains": "string",
  • "calSkipContactTags": "string",
  • "calRelateAllContacts": true,
  • "calCreateLeads": true,
  • "calCreateContacts": true,
  • "calCreateCompany": true,
  • "calAllowPrivateContacts": true,
  • "calMatchRequired": true,
  • "calSyncPrivate": true,
  • "calFetchAttachments": true,
  • "calMailboxSyncAll": true,
  • "calMailboxSyncTags": "string",
  • "calMailboxSyncMeetingsOnly": true,
  • "calPastWeeks": 0,
  • "calFutureWeeks": 0,
  • "calConvertLeads": true,
  • "calAutoDetectDeal": true,
  • "syncContacts": true,
  • "contSyncDirection": "BOTH",
  • "contCreateCompany": true,
  • "contAllowPrivateContacts": true,
  • "contPortalSyncAll": true,
  • "contMailboxSyncAll": true,
  • "contPortalSyncMine": true,
  • "contPortalSyncTags": "string",
  • "contMailboxSyncTags": "string",
  • "contMailboxSyncDeleted": true,
  • "syncTasks": true,
  • "taskSyncDirection": "BOTH",
  • "taskMailboxSyncAll": true,
  • "taskMailboxSyncTags": "string"
}

Response samples

Content type
application/json
{
  • "mailboxTypes": [
    ],
  • "logEmail": true,
  • "emailSkipDomains": "string",
  • "emailSkipContactTags": "string",
  • "emailRelateAllContacts": true,
  • "emailFetchAttachments": true,
  • "emailCreateLeads": true,
  • "emailCreateContacts": true,
  • "emailApplyFilters": true,
  • "emailAutoDetectDeal": true,
  • "emailLogAsTask": true,
  • "emailCreateCompany": true,
  • "emailAllowPrivateContacts": true,
  • "syncCalendar": true,
  • "calSyncDirection": "BOTH",
  • "calSkipDomains": "string",
  • "calSkipContactTags": "string",
  • "calRelateAllContacts": true,
  • "calCreateLeads": true,
  • "calCreateContacts": true,
  • "calCreateCompany": true,
  • "calAllowPrivateContacts": true,
  • "calMatchRequired": true,
  • "calSyncPrivate": true,
  • "calFetchAttachments": true,
  • "calMailboxSyncAll": true,
  • "calMailboxSyncTags": "string",
  • "calMailboxSyncMeetingsOnly": true,
  • "calPastWeeks": 0,
  • "calFutureWeeks": 0,
  • "calConvertLeads": true,
  • "calAutoDetectDeal": true,
  • "syncContacts": true,
  • "contSyncDirection": "BOTH",
  • "contCreateCompany": true,
  • "contAllowPrivateContacts": true,
  • "contPortalSyncAll": true,
  • "contMailboxSyncAll": true,
  • "contPortalSyncMine": true,
  • "contPortalSyncTags": "string",
  • "contMailboxSyncTags": "string",
  • "contMailboxSyncDeleted": true,
  • "syncTasks": true,
  • "taskSyncDirection": "BOTH",
  • "taskMailboxSyncAll": true,
  • "taskMailboxSyncTags": "string"
}

Sync rules

Sync rule operations

Switch from the review mode to active syncing

Notes...

path Parameters
type
required
string
Enum: "CALENDAR" "CONTACTS" "EMAIL" "TASKS"

Rule name

Responses

Delete one sync record

Notes...

path Parameters
type
required
string
Enum: "CALENDAR" "CONTACTS" "EMAIL" "TASKS"

Rule name

oid
required
integer <int64>

Object/record id

Responses

Get a calendar event

Notes...

path Parameters
oid
required
integer <int64>

Object/record id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "createTime": "2019-08-24T14:15:22Z",
  • "autoMerged": true,
  • "syncEnabled": true,
  • "sameAsId": 0,
  • "sameAsName": "string",
  • "sureMatch": true,
  • "skipMerge": true,
  • "mergeTime": "2019-08-24T14:15:22Z",
  • "mergeChild": true,
  • "subject": "string",
  • "summary": "string",
  • "allDay": true,
  • "recurring": true,
  • "meeting": true,
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "projName": "string",
  • "source": "string",
  • "location": "string",
  • "status": "CONFIRMED",
  • "remind": true,
  • "reminderPeriod": 0,
  • "reminderUnit": "MINUTES",
  • "eventContacts": [
    ],
  • "errorsDuringSync": true,
  • "accountsSummary": [
    ],
  • "recurrenceType": "SINGLE",
  • "recurrenceTimezone": "string",
  • "rrules": [
    ],
  • "originalStart": "2019-08-24T14:15:22Z",
  • "private": true
}

Get a calendar events report

Notes...

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "needReview": true,
  • "conReports": [
    ],
  • "merged": 0,
  • "possible": 0,
  • "mergeSkipped": 0,
  • "readOnly": 0
}

Get a contact

Notes...

path Parameters
oid
required
integer <int64>

Object/record id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "createTime": "2019-08-24T14:15:22Z",
  • "autoMerged": true,
  • "syncEnabled": true,
  • "sameAsId": 0,
  • "sameAsName": "string",
  • "sureMatch": true,
  • "skipMerge": true,
  • "mergeTime": "2019-08-24T14:15:22Z",
  • "mergeChild": true,
  • "name": "string",
  • "summary": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "jobTitle": "string",
  • "companyName": "string",
  • "background": "string",
  • "keywords": "string",
  • "department": "string",
  • "contCount": 0,
  • "email": [
    ],
  • "phone": [
    ],
  • "twitter": [
    ],
  • "web": [
    ],
  • "addr": [
    ],
  • "errorsDuringSync": true,
  • "fidInfo": "string",
  • "accountsSummary": [
    ]
}

Get a contacts report

Notes...

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "needReview": true,
  • "conReports": [
    ],
  • "merged": 0,
  • "possible": 0,
  • "mergeSkipped": 0,
  • "readOnly": 0
}

Get an email thread

Notes...

path Parameters
oid
required
integer <int64>

Object/record id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "createTime": "2019-08-24T14:15:22Z",
  • "subject": "string",
  • "fromSummary": "string",
  • "keywords": "string",
  • "discovered": true,
  • "forwarded": 0,
  • "message": "string",
  • "emailFrom": "string",
  • "emailTo": "string",
  • "emailCc": "string",
  • "msgList": [
    ],
  • "closed": true,
  • "emailOthers": [
    ],
  • "errorsDuringSync": true,
  • "accountsSummary": [
    ]
}

Get an email report

Notes...

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "needReview": true,
  • "conReports": [
    ],
  • "undiscovered": 0,
  • "msgCached": 0
}

Get a rule details

Notes...

path Parameters
type
required
string
Enum: "CALENDAR" "CONTACTS" "EMAIL" "TASKS"

Rule name

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "CALENDAR",
  • "enabled": true,
  • "needReview": true,
  • "svcIds": [
    ]
}

Get sync rules

Notes...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a task

Notes...

path Parameters
oid
required
integer <int64>

Object/record id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "updateTime": "2019-08-24T14:15:22Z",
  • "createTime": "2019-08-24T14:15:22Z",
  • "autoMerged": true,
  • "syncEnabled": true,
  • "sameAsId": 0,
  • "sameAsName": "string",
  • "sureMatch": true,
  • "skipMerge": true,
  • "mergeTime": "2019-08-24T14:15:22Z",
  • "mergeChild": true,
  • "subject": "string",
  • "summary": "string",
  • "notes": "string",
  • "ctgName": "string",
  • "projName": "string",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "errorsDuringSync": true,
  • "source": "string",
  • "complete": true,
  • "remind": true,
  • "remindAt": "2019-08-24T14:15:22Z",
  • "accountsSummary": [
    ],
  • "private": true
}

Get a tasks report

Notes...

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "needReview": true,
  • "conReports": [
    ],
  • "merged": 0,
  • "possible": 0,
  • "mergeSkipped": 0,
  • "countPrivate": 0,
  • "incomplete": 0
}

Delete all sync records

Notes...

path Parameters
type
required
string
Enum: "CALENDAR" "CONTACTS" "EMAIL" "TASKS"

Rule name

Responses

Query calendar events

Notes...

query Parameters
search
string

Search text

flags
string

Flags to filter by, i.e. errors, syncEnabled,...

offset
integer <int32>

Pagination offset

limit
integer <int32>

Pagination limit

sort
string

Sort by, i.e. updateTime

full
boolean

Include account infos

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "summary": [
    ]
}

Query contacts

Notes...

query Parameters
search
string

Search text

flags
string

Flags to filter by, i.e. errors, syncEnabled,...

offset
integer <int32>

Pagination offset

limit
integer <int32>

Pagination limit

sort
string

Sort by, i.e. updateTime

full
boolean

Include account infos

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "summary": [
    ]
}

Query email threads

Notes...

query Parameters
search
string

Search text

flags
string

Flags to filter by, i.e. errors, syncEnabled,...

offset
integer <int32>

Pagination offset

limit
integer <int32>

Pagination limit

sort
string

Sort by, i.e. updateTime

full
boolean

Include account infos

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "summary": [
    ]
}

Query tasks

Notes...

query Parameters
search
string

Search text

flags
string

Flags to filter by, i.e. errors, syncEnabled,...

offset
integer <int32>

Pagination offset

limit
integer <int32>

Pagination limit

sort
string

Sort by, i.e. updateTime

full
boolean

Include account infos

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "summary": [
    ]
}

Sync

Sync operations

Get sync status info

Notes...

Responses

Response samples

Content type
application/json
{
  • "userSyncEnabled": true,
  • "pkgCheckFailed": true,
  • "userLastSynced": "2019-08-24T14:15:22Z",
  • "syncState": "IDLE",
  • "lastRequest": "2019-08-24T14:15:22Z",
  • "needReview": [
    ],
  • "errors": [
    ],
  • "errRuntime": true,
  • "errMessage": "string",
  • "errTimestamp": "2019-08-24T14:15:22Z",
  • "errSvcId": 0,
  • "queued": true,
  • "executing": true
}

Request a sync

Notes...

Request Body schema: application/json
required

Sync request payload

initial
boolean
full
Array of strings unique
Items Enum: "CALENDAR" "CONTACTS" "EMAIL" "TASKS"

Responses

Request samples

Content type
application/json
{
  • "initial": true,
  • "full": [
    ]
}

Switch from 'review' to 'sync' mode

Notes...

Request Body schema: application/json
required

List of rules

string

Responses

Request samples

Content type
application/json
"string"

Push sync event

Notes...

Request Body schema: application/json
required

Sync event payload

eventTopic
string
channelKey
string
objId
string
objType
string
ownerId
string
createdById
string
lastUpdatedById
string
property name*
additional property
object

Responses

Request samples

Content type
application/json
{
  • "eventTopic": "string",
  • "channelKey": "string",
  • "objId": "string",
  • "objType": "string",
  • "ownerId": "string",
  • "createdById": "string",
  • "lastUpdatedById": "string",
  • "property1": { },
  • "property2": { }
}

Push sync events batch

Notes...

Request Body schema: application/json
required

Sync events batch

string

Responses

Request samples

Content type
application/json
"string"