Connect
Notion and
Strava to power automations.
Trigger from one app, act on another, with a thinking brain in the middle. Build it in plain English. Approve from your phone.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Notion to Strava. A trigger fires from one place; an action lands in another.
Notion triggers
Strava actions
All Page Events
Triggers when any Notion page is created or updated across the workspace.
Get Activity Laps
Retrieves lap data for a specific Strava activity by its identifier. Laps represent segments of an activity, typically auto-generated during activities like running or cycling based on distance intervals, manual lap button presses, or course segments. Use this action when you need detailed performance metrics for each lap within an activity, including timing, distance, speed, cadence, and elevation data.
Comment Created
Triggers when a new comment is created in Notion. Optional `page_id` filter scopes to comments on a specific page. When omitted, fires for any new comment in the workspace the integration has access to. Requires the 'Read comments' capability on the Notion integration. If a connection was authorized before that capability was enabled, the user must re-authorize the connection for comment events to flow.
Create an Activity
Creates a manual activity for an athlete. Requires activity:write scope. This endpoint is for manually entered activities only. To upload activity files (FIT, TCX, GPX), use the Upload Activity endpoint instead. Required parameters: name, sport_type, start_date_local, elapsed_time. Optional parameters: type (deprecated), description, distance, trainer, commute.
New Comment
Triggers when a new comment is added to a specified Notion block or page.
Explore segments
Explore segments within a geographic bounding box. Returns the top 10 segments matching the specified geographic boundary and optional filters. Segments are sections of roads or trails where Strava athletes can compete for times. The response includes segment details like: - id: Unique segment identifier - name: Segment name - climb_category: Climbing difficulty (0=NC/flat to 5=HC/hardest) - avg_grade: Average gradient percentage - distance: Segment length in meters - elev_difference: Elevation gain in meters - start_latlng/end_latlng: Start and end coordinates - elevation_profile: URL to elevation profile image
Database Created
Triggers when a new Notion database (the container) is created. A database is the post-2025-09-03 container that holds one or more data sources. This trigger fires for the container's creation event (`database.created`), distinct from `NOTION_DATASOURCE_CREATED` which fires when a new data source is added to an existing database. Most customers calling Notion's `POST /v1/databases` (the legacy API) or creating a database via the Notion UI will see this event. Adding a new data source to an existing database fires `data_source.created` instead — use `NOTION_DATASOURCE_CREATED` for that. Notion's payload puts `entity.type: "block"` (the container is a `child_database` block in the content tree) and `entity.id` is the database id.
Export Route as GPX
Exports a Strava route as a GPX (GPS Exchange Format) file. GPX files can be used to import routes into GPS devices, other fitness apps, or mapping software. Requires read_all scope for private routes.
Data Source Created
Triggers when a new Notion data source is created. Fires workspace-wide. The payload's `data.parent` carries the data source's tree parent (typically the teamspace) for downstream filtering. A single template-based database creation can fire multiple `data_source.created` events at once — one per data source the template instantiates.
Export Route as TCX
Exports a Strava route as a TCX (Training Center XML) file. TCX format is widely supported by GPS devices, fitness watches, and training software like Garmin Connect and TrainingPeaks. The exported file contains the route's waypoints, distance, and elevation profile. Requires read_all scope for private routes.
Data Source Schema Updated
Triggers when a Notion data source's schema is updated. Fires on column add / remove / rename. Payload includes `data.updated_properties: [{id, name, action}]` so consumers can discriminate the kind of change downstream. Optional `data_source_id` filter scopes to schema changes on a single data source. When omitted, fires for any schema change in the workspace the integration has access to. Note: adding a column also fires `page.properties_updated` once per existing row in the data source. Customers wanting a single structural-change signal should use this trigger.
Get Activity
Retrieves detailed information about a specific activity by its ID. Returns a DetailedActivity object containing comprehensive data including distance, time, elevation, speed, heart rate, power data (if available), segment efforts, laps, splits, and more. Permissions required: - activity:read scope for activities with visibility set to 'everyone' or 'followers_only' - activity:read_all scope for activities with visibility set to 'only_me' The activity must be owned by the authenticated athlete.
New Page
Triggers when a new page is added to a Notion database.
Get activity streams
Retrieves time-series stream data for a specific activity. Streams are the raw spatial and sensor data recorded during an activity, including GPS coordinates, speed, heart rate, power, etc. Each stream type returns an array of values that correspond to specific time points during the activity. All requested streams have the same number of data points, aligned by index. Common use cases: - GPS track visualization: request 'latlng', 'altitude', 'time' - Performance analysis: request 'heartrate', 'cadence', 'watts', 'time' - Pace/speed analysis: request 'velocity_smooth', 'distance', 'time' Requires activity:read scope. Requires activity:read_all scope for Only Me (private) activities.
Page Added to Page
Fires when a new subpage (a `child_page` type block) is added under a specified parent Notion page.
Get Activity Zones
Returns the heart rate and power zones of a given activity. This is a Summit/Premium feature that provides zone distribution data showing time spent in each training zone. The response includes an array of ActivityZone objects, typically containing: - Heart rate zones: Time distribution across heart rate training zones - Power zones: Time distribution across power training zones (for cycling with power meter) Requirements: - Strava Summit/Premium subscription for the athlete who owns the activity - activity:read scope for Everyone and Followers visibility activities - activity:read_all scope for Only Me (private) activities Common errors: - 404: Activity not found or not accessible - 403: Insufficient permissions to view activity - 402: Summit subscription required
Four ways to start an automation.
A trigger is the event that kicks a workflow off. Notis supports four kinds: an event in a connected app, an inbound webhook, a recurring schedule, and soon, your own database.
Integration triggers
Fire when something happens inside a connected app. New Notion page, Stripe charge, Linear issue: any of 1,000+ apps can start a workflow.
Webhook triggers
A unique URL per workflow. Anything that can send an HTTP POST can start an automation, including no-code tools that speak webhooks.
Recurring triggers
Cron-style schedules run a workflow on the clock. Daily standups, hourly syncs, business-hours-only digests: the workhorse of Notis.
Database triggers
Watch a row, query, or threshold in your own database and fire the moment the data changes. Row inserted, value crosses a limit, query starts matching.
Classic automation breaks. AI adapts.
Same triggers and actions, smarter middle. AI handles the fuzziness that breaks traditional Zapier-style workflows the moment a field gets renamed.
Describe it. Notis builds it.
Skip the visual builder. Tell Notis what you want, in plain English. It writes the workflow, you review and deploy.

You · in the Notis Builder
NEW“When a row gets added to the Q4 OKRs Notion database and the status is Blocked, send a Telegram message to the owner with a summary of what's blocking, and ping me if there's no reply within 24 hours.”
Notis built this automation:
Watch every run.
Notis Desktop is Mission Control for your AI automations. See every run, replay, edit, or rewind. Set approval gates so Notis pauses before destructive actions.
- Full run history with inputs, outputs and traces
- Replay any run with edited inputs
- Approval inbox, confirm via chat in one tap
- Audit logs for compliance teams
Automations
Inbox
Migrate background jobs to a durable queue You can cancel it trough Stripe
3 daysNotis v3 release update This one’s v3: Notis Manager (desktop app with …
8 daysAdd multi-tenant RBAC User initiates a voice call
13 daysDraft pricing v (tiers, limits, overages) and sanity-check margins
2 weeksVerify analytics events for new features That’s a really interesting automat…
1 monthEverything in the box.
Whatever starts the workflow, the platform underneath is the same: a thinking brain, full visibility, and you in control.
AI in the middle
Every step can include an LLM call: summarise, classify, extract, rewrite.
Full observability
Every run, every step, every input, all replay-able from Mission Control.
Human in the loop
Pause for approval. Notis pings you in chat with one-tap approve.
Self-healing
When an API changes shape, Notis adapts the parser. Less midnight fire-fighting.
More ways to connect Notion and Strava
Connect any two apps with Notis in the middle.
Not just Notion and Strava. Any combination from 985+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7 days free trial with 20$ free usage included.
No card. Works with personal or business Strava.