## Is your feature request related to a problem?

We don't have a great grasp of where our users _actually_ first hear about us.

As much as we can try to attribute through UTM tags, the reality is people will have read an article about us on HackerNews and then later googled us.

If we can understand this better, we can focus our spend on dev rel and marketing properly.

## Describe the solution you'd like

A mandatory text area in the sign up flow when the organization is created (for cloud) that asks where users first _heard_ of us. It should be a free form text field so we get more open answers.

## Describe alternatives you've considered

Spend marketing money in the wrong places, potentially.

## Additional context


#### *Thank you* for your feature request – we love each and every one!

posthog/api/signup.py
serializer = UserBasicSerializer(instance=instance)
        return serializer.data
    def validate(self, data: Dict[str, Any]) -> Dict[str, Any]:
        if "request" not in self.context or not self.context["request"].user.is_authenticated:
            
            for attr in ["first_name", "password"]:
                if not data.get(attr):
                    raise serializers.ValidationError({attr: "This field is required."}, code="required")
        return data
    def create(self, validated_data, **kwargs):
        if "view" not in self.context or not self.context["view"].kwargs.get("invite_id"):
            raise serializers.ValidationError("Please provide an invite ID to continue.")
        user: Optional[User] = None
        is_new_user: bool = False
        if self.context["request"].user.is_authenticated:
            user = cast(User, self.context["request"].user)
        invite_id = self.context["view"].kwargs.get("invite_id")
        try:
            invite: OrganizationInvite = OrganizationInvite.objects.select_related("organization").get(id=invite_id)
        except (OrganizationInvite.DoesNotExist):
            raise serializers.ValidationError("The provided invite ID is not valid.")
        with transaction.atomic():
            if not user:
                is_new_user = True
                try:
                    user = User.objects.create_user(
                        invite.target_email,
                        validated_data.pop("password"),
                        validated_data.pop("first_name"),