30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

LearnDash Manage Notification

learndash/manage-notification creates a notification email or updates an existing one.

The title is the email subject and the body is its content.

At a glance

Abilitylearndash/manage-notification
ToolsetLearnDash — toolset/learndash
GroupLearnDash › Notifications
RequiresAcrossAI Pro, plus LearnDash LMS active on the site
Capabilitymanage_options
SafetyWrites data
RepeatableIdempotent — running it twice leaves the same result
Ships inAcrossAI Pro 0.9.16 and later

How it works

LearnDash merge shortcodes such as [user_login], [course_title] and [quiz_title] work in the body and are stored raw, which is what makes the email personal rather than generic.

A body without them sends the same words to everybody, which for a completion email is a missed opportunity and for an assignment-approval email is confusing.

Status defaults to publish, because a draft notification never sends — the same reasoning as achievements. There is no useful staging state.

Scope it to a specific course, lesson, topic, quiz or group, or leave the scope empty to fire for all of them. Empty is the broader setting and the easier one to choose by accident.

delay with delay_unit sends it later rather than immediately, which is how a follow-up email is built.

Idempotent.

Input

NameTypeRequiredWhat it is
actionstringYescreate or update.
notification_idintegerFor updateWhich notification.
titlestringFor createThe email subject.
triggerstringFor createA key from learndash/list-notification-triggers.
bodystringFor createThe email content. Merge shortcodes are stored raw.
recipientstringNoWho receives it.
scopeobjectNoRestrict to a course, lesson, topic, quiz or group.
delayintegerNoSend this long after the trigger.
delay_unitstringNoThe unit for the delay.
statusstringNo — defaults to publishA draft notification never sends.

What comes back

NameTypeWhat it is
notificationobjectThe notification after the write.
successbooleanWhether the call completed.
messagestringA one-line summary of what happened, suitable for showing a human.
error_codestringPresent only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation.

Example

Ask your assistant:

Email learners when they finish the onboarding course.

It resolves to one call:

{
  "ability": "learndash/manage-notification",
  "parameters": {
    "action": "create",
    "title": "You have finished [course_title]",
    "trigger": "course_completed",
    "body": "Well done [user_login] — your certificate is ready."
  }
}

Worth knowing

  • Merge shortcodes are what make the email personal. Stored raw.
  • Published by default, because a draft never sends.
  • An empty scope fires for every course.
  • A delay turns it into a follow-up.

Related abilities


Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager

Browse the rest: Every ability, by category


Keep reading