mirror of
https://github.com/twentyhq/twenty.git
synced 2024-12-24 12:34:10 +03:00
f06cdbdfc6
**TLDR** Refactor WebhoonAnalytics Graph to a more abstract version AnalyticsGraph (in analytics module). Thus enabling the components to be used on different instances (ex: new endpoint, new kind of graph). **In order to test:** 1. Set ANALYTICS_ENABLED to true 2. Set TINYBIRD_JWT_TOKEN to the ADMIN token from the workspace twenty_analytics_playground 3. Set TINYBIRD_JWT_TOKEN to the datasource or your admin token from the workspace twenty_analytics_playground 4. Create a Webhook in twenty and set wich events it needs to track 5. Run twenty-worker in order to make the webhooks work. 6. Do your tasks in order to populate the data 7. Enter to settings> webhook>your webhook and the statistics section should be displayed. --------- Co-authored-by: Félix Malfait <felix@twenty.com>
42 lines
1.1 KiB
Plaintext
42 lines
1.1 KiB
Plaintext
DESCRIPTION >
|
|
Inspired by DUB implementation
|
|
|
|
NODE dayIntervals
|
|
SQL >
|
|
%
|
|
WITH
|
|
toStartOfDay(
|
|
parseDateTime64BestEffort({{ String(start, '2024-11-01T00:00:00.000Z') }}, 3)
|
|
) AS start,
|
|
toStartOfDay(parseDateTime64BestEffort({{ String(end, '2024-11-02T00:00:00.000Z') }}, 3)) AS
|
|
end
|
|
SELECT
|
|
arrayJoin(
|
|
arrayMap(
|
|
x -> toDateTime64(toStartOfDay(toDateTime64(x, 3)), 3),
|
|
range(toUInt32(start + 86400), toUInt32(end + 86400),
|
|
86400
|
|
)
|
|
)
|
|
) as interval
|
|
|
|
NODE hourIntervals
|
|
SQL >
|
|
%
|
|
WITH
|
|
toStartOfHour(
|
|
parseDateTime64BestEffort({{ String(start, '2024-11-01T00:00:00.000Z') }}, 3)
|
|
) AS start,
|
|
toStartOfHour(parseDateTime64BestEffort({{ String(end, '2024-11-02T00:00:00.000Z') }}, 3)) AS
|
|
end
|
|
SELECT
|
|
arrayJoin(
|
|
arrayMap(x -> toDateTime64(x, 3), range(toUInt32(start + 3600), toUInt32(end + 3600), 3600)
|
|
)
|
|
) as interval
|
|
|
|
NODE selectIntervalByGranularity
|
|
SQL >
|
|
%
|
|
SELECT * FROM {% if granularity == "hour" %} hourIntervals {% else %} dayIntervals {% end %}
|