diff --git a/src/sentry/analytics/events/inapp_request.py b/src/sentry/analytics/events/inapp_request.py new file mode 100644 index 00000000000000..43b2235a7a0c56 --- /dev/null +++ b/src/sentry/analytics/events/inapp_request.py @@ -0,0 +1,18 @@ +from sentry import analytics + + +class InAppRequestSentEvent(analytics.Event): + attributes = ( + analytics.Attribute("organization_id"), + analytics.Attribute("user_id", required=False), + analytics.Attribute("target_user_id"), + analytics.Attribute("providers"), + analytics.Attribute("subtype", required=False), + ) + + +class InviteRequestSentEvent(InAppRequestSentEvent): + type = "invite_request.sent" + + +analytics.register(InviteRequestSentEvent) diff --git a/src/sentry/tasks/members.py b/src/sentry/tasks/members.py index 9e60c2b6089738..48b2c5366cc527 100644 --- a/src/sentry/tasks/members.py +++ b/src/sentry/tasks/members.py @@ -1,7 +1,7 @@ from django.urls import reverse from structlog import get_logger -from sentry import roles +from sentry import analytics, roles from sentry.models import InviteStatus, OrganizationMember from sentry.tasks.base import instrumented_task from sentry.utils.email import MessageBuilder @@ -63,3 +63,10 @@ def send_invite_request_notification_email(member_id): except Exception as e: logger = get_logger(name="sentry.mail") logger.exception(e) + analytics.record( + "invite_request.sent", + organization_id=om.organization.id, + user_id=om.inviter.id if om.inviter else None, + target_user_id=recipient.id, + providers="email", + )