def METHOD_NAME(self, user, alert_group, notification_policy):
    from apps.base.models import UserNotificationPolicyLogRecord
    slack_message = alert_group.slack_message
    user_verbal = user.get_username_with_slack_verbal(mention=True)
    slack_user_identity = user.slack_user_identity
    if slack_user_identity is None:
        text = "{}\nTried to invite {} to look at the alert group. Unfortunately {} is not in slack.".format(
            alert_group.long_verbose_name, user_verbal, user_verbal
        )
        UserNotificationPolicyLogRecord(
            author=user,
            type=UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_FAILED,
            notification_policy=notification_policy,
            alert_group=alert_group,
            reason="User is not in Slack",
            notification_step=notification_policy.step,
            notification_channel=notification_policy.notify_by,
            notification_error_code=UserNotificationPolicyLogRecord.ERROR_NOTIFICATION_IN_SLACK_USER_NOT_IN_SLACK,
        ).save()
    else:
        text = "{}\nInviting {} to look at the alert group.".format(alert_group.long_verbose_name, user_verbal)
    blocks = [
        {
            "type": "section",
            "block_id": "alert",
            "text": {
                "type": "mrkdwn",
                "text": text,
            },
        }
    ]
    sc = SlackClient(self.slack_team_identity)
    channel_id = slack_message.channel_id
    try:
        result = sc.chat_postMessage(
            channel=channel_id,
            text=text,
            blocks=blocks,
            thread_ts=slack_message.slack_id,
            unfurl_links=True,
        )
    except SlackAPITokenError:
        UserNotificationPolicyLogRecord(
            author=user,
            type=UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_FAILED,
            notification_policy=notification_policy,
            alert_group=alert_group,
            reason="Slack token error",
            notification_step=notification_policy.step,
            notification_channel=notification_policy.notify_by,
            notification_error_code=UserNotificationPolicyLogRecord.ERROR_NOTIFICATION_IN_SLACK_TOKEN_ERROR,
        ).save()
        return
    except SlackAPIChannelArchivedError:
        UserNotificationPolicyLogRecord(
            author=user,
            type=UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_FAILED,
            notification_policy=notification_policy,
            alert_group=alert_group,
            reason="channel is archived",
            notification_step=notification_policy.step,
            notification_channel=notification_policy.notify_by,
            notification_error_code=UserNotificationPolicyLogRecord.ERROR_NOTIFICATION_IN_SLACK_CHANNEL_IS_ARCHIVED,
        ).save()
        return
    else:
        alert_group.slack_messages.create(
            slack_id=result["ts"],
            organization=self.organization,
            _slack_team_identity=self.slack_team_identity,
            channel_id=channel_id,
        )
    # Check if escalated user is in channel. Otherwise send notification and request to invite him.
    try:
        if slack_user_identity:
            channel_members = []
            try:
                channel_members = sc.conversations_members(channel=channel_id)["members"]
            except SlackAPIFetchMembersFailedError:
                pass
            if slack_user_identity.slack_id not in channel_members:
                time.sleep(5)  # 2 messages in the same moment are ratelimited by Slack. Dirty hack.
                slack_user_identity.send_link_to_slack_message(slack_message)
    except (SlackAPITokenError, SlackAPIMethodNotSupportedForChannelTypeError):
        pass