3
0

Fields

CRM input field definitions

List available fields

Method

URI Protocol Method Authentication
/field/ HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?

Get field details

Method

URI Protocol Method Authentication
/field/{typeID} HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
typeID string PATH Type ID N/A YES

Modules

CRM module definitions

List modules

Method

URI Protocol Method Authentication
/module/ HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
query string GET Search query N/A NO

Create module

Method

URI Protocol Method Authentication
/module/ HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
name string POST Module Name N/A YES
fields types.JSONText POST Fields JSON N/A YES

Read module

Method

URI Protocol Method Authentication
/module/{moduleID} HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
moduleID uint64 PATH Module ID N/A YES

Analyze data for chart

JSON for Charts

When the API generates a JSON like this we can generate charts (with some JS on the front-end). The Groupby, Sum and Count fields in the form in the chart module in the CRM are there to format the values in the data array.

Example with no GroupBy, Sum or Count:

Example chart: select Opportunity value for all opportunities between 1/1/2018 and 31/12/2018 and show them in a line chart.

{
  "kind": "line",
  "data": [
    [
      "Close date",
      "2018-01-01",
      "2018-01-02",
      "2018-01-03",
      "2018-01-04"
    ],
    [
      "Opportunity value",
      30,
      200,
      100,
      400
    ]
  ],
  "fields": {
    "Close date": {
      "kind": "datetime",
      "min": "1/1/2018",
      "max": "31/12/2018"
    },
    "Opportunity value": {
      "name": "(Field name)",
      "kind": "(Field kind)"
    }
  },
  "meta": {
    "name": "Line chart",
    "description": "Description for the chart",
    "kind": "line",
    "module": 62511111111111110,
    "x": 62522222222222220,
    "xmin": "1/1/2018",
    "xmax": "31/12/2018",
    "y": 62533333333333336
  }
}

Example with Count:

Example pie chart: select opportunity.state count by opportunity.state.

This will need to return:

Open, 10 (where the 10 is a count) Won, 5 Lost, 2

{
  "kind": "pie",
  "data": [
    [
      "Open",
      10
    ],
    [
      "Won",
      5
    ],
    [
      "Lost",
      2
    ]
  ],
  "fields": {
    "state": {
      "kind": "string"
    }
  },
  "meta": {
    "name": "Pie chart",
    "description": "",
    "kind": "pie",
    "module": 62511111111111110,
    "x": 62522222222222220,
    "y": 62533333333333336,
    "count": 62566666666666664
  }
}

Example with Sum:

Example donut chart: select opportunity.type sum by opportunity.value.

This will need to return a sum of all the opportunies by type (very similar to count, but it sums instead of counts)

{
  "kind": "donut",
  "data": [
    [
      "Open",
      120000
    ],
    [
      "Won",
      1000000
    ],
    [
      "Lost",
      30000
    ]
  ],
  "fields": {
    "type": {
      "kind": "string"
    }
  },
  "meta": {
    "name": "Donut chart",
    "description": "Description for the chart",
    "kind": "donut",
    "module": 62511111111111110,
    "x": 62522222222222220,
    "y": 62533333333333336,
    "sum": 62555555555555550
  }
}

Example with GroupBy and Count

Example bar chart with number of leads per country: select lead.country from leads Count lead.id GroupBy lead.country

{
  "kind": "bar",
  "data": [
    [
      "France",
      12
    ],
    [
      "Slovenia",
      10
    ],
    [
      "Spain",
      3
    ],
    [
      "United Kingdom",
      5
    ],
    [
      "Germany",
      20
    ]
  ],
  "fields": {
    "country": {
      "kind": "string"
    }
  },
  "meta": {
    "name": "Bar chart",
    "description": "",
    "kind": "bar",
    "module": 62511111111111110,
    "x": 62522222222222220,
    "y": 62533333333333336,
    "groupby": 62544444444444450,
    "count": 62566666666666664
  }
}

Method

URI Protocol Method Authentication
/module/{moduleID}/chart HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
name string GET The chart name N/A YES
description string GET The chart description N/A YES
xAxis string GET X axis value N/A YES
xMin string GET Min value N/A NO
xMax string GET Max value N/A NO
yAxis string GET Y axis value N/A YES
groupBy string GET Group by field N/A YES
sum string GET Sum values field N/A YES
count string GET Count values field N/A YES
kind string GET Chart kind (line, spline, step, area, area-spline, area-step, bar, scatter, pie, donut, gauge) N/A YES
moduleID uint64 PATH Module ID N/A YES

Edit module

Method

URI Protocol Method Authentication
/module/{moduleID} HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
moduleID uint64 PATH Module ID N/A YES
name string POST Module Name N/A YES
fields types.JSONText POST Fields JSON N/A YES

Delete module

Method

URI Protocol Method Authentication
/module/{moduleID} HTTP/S DELETE

Request parameters

Parameter Type Method Description Default Required?
moduleID uint64 PATH Module ID N/A YES

List/read contents from module section

Method

URI Protocol Method Authentication
/module/{moduleID}/content HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
query string GET Search query N/A NO
page int GET Page number (0 based) N/A NO
perPage int GET Returned items per page (default 50) N/A NO
moduleID uint64 PATH Module ID N/A YES

List/read contents from module section

Method

URI Protocol Method Authentication
/module/{moduleID}/content HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
moduleID uint64 PATH Module ID N/A YES
fields types.JSONText POST Content JSON N/A YES

Read contents by ID from module section

Method

URI Protocol Method Authentication
/module/{moduleID}/content/{contentID} HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
moduleID uint64 PATH Module ID N/A YES
contentID uint64 PATH Content ID N/A YES

Add/update contents in module section

Method

URI Protocol Method Authentication
/module/{moduleID}/content/{contentID} HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
moduleID uint64 PATH Module ID N/A YES
contentID uint64 PATH Content ID N/A YES
fields types.JSONText POST Content JSON N/A YES

Delete content row from module section

Method

URI Protocol Method Authentication
/module/{moduleID}/content/{contentID} HTTP/S DELETE

Request parameters

Parameter Type Method Description Default Required?
moduleID uint64 PATH Module ID N/A YES
contentID uint64 PATH Content ID N/A YES

Pages

CRM module pages

List available pages

Method

URI Protocol Method Authentication
/page/ HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
selfID uint64 GET Parent page ID N/A NO

Create page

Method

URI Protocol Method Authentication
/page/ HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
selfID uint64 POST Parent Page ID N/A NO
moduleID uint64 POST Module ID (optional) N/A NO
title string POST Title N/A YES
description string POST Description N/A NO
visible bool POST Visible in navigation N/A NO
blocks types.JSONText POST Blocks JSON N/A YES

Get page details

Method

URI Protocol Method Authentication
/page/{pageID} HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
pageID uint64 PATH Page ID N/A YES

Get page all pages, hierarchically

Method

URI Protocol Method Authentication
/page/tree HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?

Edit page

Method

URI Protocol Method Authentication
/page/{pageID} HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
pageID uint64 PATH Page ID N/A YES
selfID uint64 POST Parent Page ID N/A NO
moduleID uint64 POST Module ID (optional) N/A NO
title string POST Title N/A YES
description string POST Description N/A NO
visible bool POST Visible in navigation N/A NO
blocks types.JSONText POST Blocks JSON N/A YES

Reorder pages

Method

URI Protocol Method Authentication
/page/{selfID}/reorder HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
selfID uint64 PATH Parent page ID N/A YES
pageIDs []string POST Page ID order N/A YES

Delete page

Method

URI Protocol Method Authentication
/page/{pageID} HTTP/S Delete

Request parameters

Parameter Type Method Description Default Required?
pageID uint64 PATH Page ID N/A YES