posthog-js supports person.set_once but our backend doesn't. Make sure we can pass through `$set_once` on an `$identify` call, and only set the properties within if the properties aren't already set on the user.
posthog/tasks/process_event.py
save = False
    if not team.ingested_event:
        
        for user in team.organization.members.all():
            posthoganalytics.capture(user.distinct_id, "first team event ingested", {"team": str(team.uuid)})
        team.ingested_event = True
        save = True
    if event not in team.event_names:
        save = True
        team.event_names.append(event)
        team.event_names_with_usage.append({"event": event, "usage_count": None, "volume": None})
    for key, value in properties.items():
        if key not in team.event_properties:
            team.event_properties.append(key)
            team.event_properties_with_usage.append({"key": key, "usage_count": None, "volume": None})
            save = True
        if isinstance(value, Number) and key not in team.event_properties_numerical:
            team.event_properties_numerical.append(key)
            save = True
    if save:
        team.save()
def _add_missing_feature_flags(properties: Dict, team: Team, distinct_id: str) -> None:
    
    if not properties.get("$lib") == "web" or properties.get("$active_feature_flags"):
        return
    properties["$active_feature_flags"] = get_active_feature_flags(team, distinct_id)
def _capture(