Connect Slack, Discord, Telegram, Airtable, a tracker or Matomo
https://seolyticize.com /api/v1/tools/connect_integration Connects one of the client's own tools by token. Slack: webhookUrl (an incoming webhook), or token (a bot token, xoxb-…) with channel. Discord: webhookUrl. Telegram: token (from BotFather) with chatId. Airtable: token (a personal access token with data.records:read and write on the base). Jira: site (https://….atlassian.net), email, token (an API token), projectKey, optional issueType. Linear: token (a personal API key) and teamId. GitHub: token (fine-grained, Issues read and write), owner and repo. Matomo (analytics instead of GA4): site (the Matomo address, https://…), idSite (the site's id in Matomo) and token (a token_auth with view access, from Administration → Personal → Security; a POST-only token works); read with get_matomo_report. Checked with one call, then sealed. For Linear and GitHub it returns a webhook URL and secret to add in the tracker for instant status sync (polling hourly works without). Answers 'post the digest to our Slack', 'mirror tasks into Jira'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredproviderstringrequiredtokenstringwebhookUrlstringchannelstringchatIdstringsitestringemailstringprojectKeystringissueTypestringteamIdstringownerstringrepostringidSitestring{
"clientId": "string",
"provider": "airtable",
"token": null,
"webhookUrl": null,
"channel": null,
"chatId": null,
"site": null,
"email": null,
"projectKey": null,
"issueType": null,
"teamId": null,
"owner": null,
"repo": null,
"idSite": null
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/connect_integration" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","provider":"airtable","token":null,"webhookUrl":null,"channel":null,"chatId":null,"site":null,"email":null,"projectKey":null,"issueType":null,"teamId":null,"owner":null,"repo":null,"idSite":null}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_integration
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/connect_integration
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_integration
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_integration
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_integration
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/connect_integration
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/connect_integration
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger