Mixpanel Analysis Tutorial
API Documentation
Endpoints
Tutorials
- Create an Instance with multiple Data Sources
- Dynamically Creating Custom GPT-4 Instances for Substack Blog Posts with BerriAI
- Embed your Berri App into your Website
- Classification + Multi-prompting Tutorial
- Improving Document QA w/ Custom Chunking Tutorial
- Build a slackbot to call your Berri / chatGPT endpoints
- [Javascript] Pass a query with conversation history!
- [Javascript] Pass multiple files and urls!
- Improving Results - 3 strategies w/ Berri
Additional Resources
Support & FAQs
Mixpanel Analysis Tutorial
Spin up a chatGPT App to analyze your user’s Mixpanel data in minutes.
# Allow a user to pass in their mixpanel api token
# get past 7d data
# save it as a spreadsheet
# call berri pipeline folder with the spreadsheet
from mixpanel import Mixpanel
import csv
from io import StringIO
import requests
import tempfile
from pathlib import Path
try:
import json
except ImportError:
import simplejson as json
api_token = "<your_users_mixpanel_api_token>"
user_email = "<your_email>"
def get_mixpanel_data(api_token: str, user_email: str):
encoded_secret = api_token.encode()
# byteAPISecret = bytes(encoded_secret + ':', "utf-8")
api = Mixpanel(api_secret=encoded_secret)
data = api.request(['export'], {
'to_date': "2023-03-01",
'from_date': "2023-02-28"
})
flattened_list = []
csv_col_names = set()
for d in data:
flat_item = {"event": d["event"]}
flat_item.update(d["properties"])
for item in flat_item.keys():
csv_col_names.add(item)
flattened_list.append(flat_item)
#write data to a csv file
url = 'https://data-ingest-server-customer-support-template-v-2-mpvf.zeet-berri.zeet.app/berri_pipeline_folder?user_email={user_email}&agent_type=data_analysis_agent'
csv_data = StringIO()
writer = csv.DictWriter(csv_data, fieldnames=csv_col_names)
writer.writeheader()
for row in flattened_list:
writer.writerow({**row})
files = {'file': ('mixpanel_data.csv', csv_data.getvalue(), 'text/csv')}
response = requests.post(url, files=files)
print("response: ", response)
result = response.json()
print("result from dqa", result)
return result
get_mixpanel_data(api_token, user_email)