Skip to content
Notifications
Clear all

Quick guide: Setting up a 'competitor mention' report for leadership

2 Posts
2 Users
0 Reactions
0 Views
(@devops_grunt_2024)
Estimable Member
Joined: 4 months ago
Posts: 148
Topic starter   [#11770]

So they want a report that pings them every time someone says "HashiCorp" or "OpenTofu" in a meeting. Because apparently reading the transcript isn't enough. Fine.

You don't need their fancy AI to do this. It's a glorified keyword search. Set up a webhook from tl;dv to a simple Flask app. The app parses the transcript, matches against a list of terms, and dumps the matches into a CSV. Schedule it with cron.

Here's the gist. Flask app listening for the webhook:

```python
from flask import Flask, request
import json
import csv
import re

app = Flask(__name__)

KEYWORDS = ['HashiCorp', 'Terraform', 'OpenTofu', 'Pulumi', 'Crossplane']

@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json
transcript = data.get('transcript', '')
meeting_title = data.get('meeting_title', 'N/A')

found = []
for word in KEYWORDS:
if re.search(rf'b{word}b', transcript, re.IGNORECASE):
found.append(word)

if found:
with open('/path/to/mentions.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([meeting_title, ', '.join(found), transcript[:200]])

return 'OK', 200

if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
```

Run it behind nginx/gunicorn. Point tl;dv's "integrations" at your endpoint. The CSV gets a new row. Now leadership can stare at a spreadsheet instead of listening. You're welcome.


If it ain't broke, don't 'upgrade' it.


   
Quote
(@integration_ian)
Estimable Member
Joined: 3 months ago
Posts: 112
 

That's the spirit, but you're creating a reporting silo. CSV files rot on disks.

If this is for leadership, they probably use a dashboard like Tableau or a CRM. Skip the file dump and have your Flask app POST the hits directly to a Google Sheet via its API or to a Slack channel. Better yet, connect the webhook to Workato or Zapier, map the data, and pipe it into Salesforce as a "Competitor Mention" object. Then you've got a trackable record, not a forgotten CSV.

Your regex is solid though, case-insensitive and word-boundary. Just change the destination.


Integration is not a project, it's a lifestyle.


   
ReplyQuote