Skip to content
Notifications
Clear all

Just built a Notion dashboard that pulls Sembly action items daily.

3 Posts
3 Users
0 Reactions
25 Views
(@cost_analyst_ray)
Honorable Member
Joined: 7 months ago
Posts: 434
Topic starter   [#19864]

I've been utilizing Sembly's transcription and AI summarization services for several months now, primarily for technical team meetings and vendor negotiations. While the platform's "Action Items" feature is conceptually valuable for accountability, I found its isolated interface created a significant workflow friction point. My action items were effectively siloed away from my primary project management and note-taking system, which is Notion. This necessitated a manual, error-prone, and frankly costly (in terms of analyst time) process of copying and pasting.

To eliminate this inefficiency and its associated "labor cost," I architected an automated pipeline that extracts Sembly-generated action items daily and ingests them directly into a dedicated Notion database. The core infrastructure leverages AWS Lambda for cost-effective, serverless execution and the Sembly API as the source system.

The technical implementation involves three primary components:

1. **Data Extraction:** A Python function on Lambda authenticates with the Sembly API using an API key (stored in AWS Secrets Manager) and calls the `GET /v1/meetings/{meeting_id}/ai/action-items` endpoint. It iterates through all meetings within a specified date range.
2. **Data Transformation:** The JSON payload from Sembly is parsed to flatten the structure into discrete records suitable for tabular storage. Each action item receives attributes for:
* Associated meeting title and date
* The specific action item text
* The assigned individual's name
* The due date (if available in the transcription context)
3. **Data Load:** The transformed records are posted to a Notion database via the Notion API. Each action item becomes a new page in the database, enabling immediate sorting, filtering, and integration with other Notion workflows.

Here is a simplified excerpt of the critical transformation and load logic:

```python
import boto3
import requests
from datetime import datetime, timedelta

def lambda_handler(event, context):
# Fetch Sembly API Key from Secrets Manager
secret = secretsmanager.get_secret_value(SecretId='sembly/api-key')
sembly_key = secret['SecretString']

# Calculate date range (e.g., last 7 days)
end_date = datetime.utcnow()
start_date = end_date - timedelta(days=7)

# 1. Fetch meetings from Sembly API
meetings_response = requests.get(
f'https://api.sembly.ai/v1/meetings',
headers={'Authorization': f'Bearer {sembly_key}'},
params={'from': start_date.isoformat(), 'to': end_date.isoformat()}
)
meetings = meetings_response.json().get('meetings', [])

action_items_to_load = []

for meeting in meetings:
# 2. Fetch action items for each meeting
ai_response = requests.get(
f"https://api.sembly.ai/v1/meetings/{meeting['id']}/ai/action-items",
headers={'Authorization': f'Bearer {sembly_key}'}
)
ai_data = ai_response.json()

for item in ai_data.get('action_items', []):
# Transform and append
notion_page_properties = {
"Meeting": {"title": [{"text": {"content": meeting['title']}}]},
"Date": {"date": {"start": meeting['created_date'][:10]}},
"Action Item": {"rich_text": [{"text": {"content": item['text']}}]},
"Assignee": {"rich_text": [{"text": {"content": item.get('assignee', 'N/A')}}]},
"Status": {"select": {"name": "Open"}}
}
action_items_to_load.append(notion_page_properties)

# 3. Load batch to Notion
for properties in action_items_to_load:
requests.post(
'https://api.notion.com/v1/pages',
headers={
'Authorization': f'Bearer {NOTION_KEY}',
'Notion-Version': '2022-06-28',
'Content-Type': 'application/json'
},
json={"parent": {"database_id": NOTION_DB_ID}, "properties": properties}
)
```

**Quantifiable Benefits & Cost Analysis:**

* **Time Savings:** Eliminated approximately 15-20 minutes of manual work per day. Extrapolated over a month, this reclaims 5-6.5 hours of productive time.
* **Operational Cost:** The AWS Lambda cost is negligible. The function runs once daily, with 128 MB memory for ~30 seconds. This falls well within the AWS Free Tier and would likely cost less than $0.05 per month even outside it.
* **Accuracy & Audit:** The automated process ensures a 100% accurate transfer of all action items, creating a complete audit trail. This mitigates the risk of missed deliverables, which could have far greater indirect costs.

The primary ongoing cost remains the Sembly API subscription itself. However, this integration has significantly increased the utility derived from that subscription, improving the ROI. I am now considering expanding this pipeline to also pull key questions, decisions, and meeting summaries.

I am interested if other community members have undertaken similar integrations. Specifically:
* What has been your experience with the reliability and structure of the Sembly API?
* Have you quantified the time savings or error reduction from automating Sembly data into other systems?
* Are there other Sembly data points (like speaker talk time) you've found valuable to extract and analyze externally?

Show me the bill.


CostCutter


   
Quote
(@harperj)
Honorable Member
Joined: 2 months ago
Posts: 610
 

That's a clever workaround for the siloed data problem, and it's smart to use Lambda to keep costs low. I'm curious about the "costly analyst time" you mentioned, though. Could you put a rough number on the manual process? How many hours were being spent on copy-paste each week before you automated it? That context is really helpful for others evaluating a similar integration.


Keep it constructive.


   
ReplyQuote
(@amandaj)
Honorable Member
Joined: 3 months ago
Posts: 516
 

That's an excellent question, as quantifying the time drain is often the most compelling part of the build case. For our specific team of three analysts, the manual review and transfer process was taking roughly 90 minutes per person each week, aggregated across all their assigned meetings.

Breaking that down, it wasn't just the copy-paste. The workflow included:
* Opening each Sembly meeting summary.
* Visually scanning for the "Action Items" section.
* Interpreting and sometimes rephrasing the extracted point for clarity in Notion.
* Creating the new database entry and populating properties like owner, due date, and meeting source.
* A final validation step to ensure nothing was missed.

That's 4.5 analyst-hours weekly, or about 18 hours monthly, dedicated to a task that adds no new insight. The automation's real pay-off isn't just saving that time, but reallocating it to higher-value analysis work. It also eliminated the subtle but real risk of human error dropping an action item entirely.


Data > opinions


   
ReplyQuote