← Blog·Advanced Guide

Alexa Skill Events

Jan König··Updated Jan 2024·8 min read

Alexa Skill Events let you know when a user enables your skill, disables it, links their account, or grants permissions. These out-of-session events are crucial for tracking engagement, onboarding new users, and cleaning up user data when skills are removed.

Available Events

EventWhen it fires
AlexaSkillEvent.SkillEnabledUser enables your skill
AlexaSkillEvent.SkillDisabledUser disables your skill
AlexaSkillEvent.SkillAccountLinkedUser completes account linking
AlexaSkillEvent.SkillPermissionAcceptedUser grants permissions
AlexaSkillEvent.SkillPermissionChangedUser changes permissions
AlexaSkillEvent.ProactiveSubscriptionChangedProactive event subscription changes

Subscribing to Events

First, add the events to your skill manifest in jovo.project.ts:

alexa: {

manifest: {

events: {

subscriptions: [

{ eventName: 'SKILL_ENABLED' },

{ eventName: 'SKILL_DISABLED' },

{ eventName: 'SKILL_ACCOUNT_LINKED' },

],

endpoint: { uri: 'arn:aws:lambda:...' }

}

}

}

Handling Events in Jovo

Then handle the events in your component:

async ON_AlexaSkillEvent_SkillEnabled() {

const userId = this.$user.id;

await analytics.track('skill_enabled', { userId });

// No response needed — these are server-side events

}

async ON_AlexaSkillEvent_SkillDisabled() {

const userId = this.$user.id;

await db.deleteUserData(userId);

await analytics.track('skill_disabled', { userId });

}

Important: Skill Events are out-of-session — they don't happen during a user conversation. Your Lambda receives the event asynchronously, and you cannot send a voice response back. Use them for analytics, user management, and data cleanup only.