From 49b70d8f2dd32a7f850f34d3c0aededf8dbb946c Mon Sep 17 00:00:00 2001 From: Tit Petric Date: Sun, 25 Nov 2018 13:05:14 +0100 Subject: [PATCH] upd(docs): include chart docs into readme --- .../Chart-API.md => api/crm/module/chart.md | 0 docs/crm/README.md | 185 ++++++++++++++++++ 2 files changed, 185 insertions(+) rename docs/crm/Chart-API.md => api/crm/module/chart.md (100%) diff --git a/docs/crm/Chart-API.md b/api/crm/module/chart.md similarity index 100% rename from docs/crm/Chart-API.md rename to api/crm/module/chart.md diff --git a/docs/crm/README.md b/docs/crm/README.md index 9805e2e70..ea9c61218 100644 --- a/docs/crm/README.md +++ b/docs/crm/README.md @@ -81,6 +81,191 @@ CRM module definitions ## 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 |