Integration playbooks
How to connect a source to tlly: the credential, the minimum permission, and the job that reads it. The same text is what the AI builder and the MCP server use.
- AirtableGET records with data.records:read. Offset paging is a cursor tlly does not follow.
- GA4The Data API runReport call is a POST, so a stored secret cannot be sent. Use a sheet or push.
- GitHubWeekly commit counts from the statistics API, or an open-issue snapshot if search returns total_count.
- Google AdsSend Ads numbers to the Sheets template with a script. The Ads API is not a tlly job.
- Google SheetsChart a published CSV. Start from the KPI template (Make a copy https://docs.google.com/spreadsheets/d/1Ty5X3LkY2unxTNGbkq36qDzuuYxQMsuywaTNyzL_pac/copy; public CSV https://docs.google.com/spreadsheets/d/1Ty5X3LkY2unxTNGbkq36qDzuuYxQMsuywaTNyzL_pac/export?format=csv&gid=1746689811; downloads /templates/google-sheets.csv and /templates/google-sheets.xlsx).
- HubSpotOpen pipeline value and deal count from HubSpot CRM search. The search POST is allowed.
- IntercomA read token from the Developer Hub. Conversation JSON paths were not re-fetched.
- JSON APIAny public or keyed HTTPS JSON or CSV URL. A spreadsheet starts from the Google Sheets KPI template (Make a copy https://docs.google.com/spreadsheets/d/1Ty5X3LkY2unxTNGbkq36qDzuuYxQMsuywaTNyzL_pac/copy).
- Lemon SqueezyGET orders with a Bearer key. Totals in the sample are cents. One page unless page[number] walks.
- LinearRead issues with a GraphQL query. Personal keys omit the Bearer prefix.
- Meta AdsGET Ads Insights with ads_read. Spend is a decimal string on a date range.
- NotionDatabase query is a POST, so a stored secret cannot be sent. Use a sheet or push.
- PaddleGET transactions with transaction.read. Amounts are minor-unit strings. Paging is a cursor.
- PipedriveRead deals with the company API token. The token cannot be limited to read-only.
- PlausibleThe current Stats API is POST /api/v2/query, which tlly will not call with a stored secret.
- PostHogQueries are POST with scope query:read. Use a sheet or push, not a stored-secret job.
- Public dataJSON, CSV and JSON-stat from a public URL. No key, except sources that issue their own free key.
- Push and webhooksYour own systems POST numbers to a write-only address. tlly does not receive arbitrary vendor webhooks as series.
- SalesforceNo Salesforce connector. Use a sheet or the push address.
- ShopifyRead recent orders with the Admin GraphQL API and a read-only app token.
- StripeSnapshot the Stripe balance with a restricted key. There is no MRR field.
- ZendeskToken auth is Basic, as the user. Ticket JSON paths were not re-fetched; preview before charting.