learndash/award-achievement gives a specific badge to a specific learner, bypassing its trigger.
The learner does not have to have met the condition.
At a glance
| Ability | learndash/award-achievement |
| Toolset | LearnDash — toolset/learndash |
| Group | LearnDash › Achievements |
| Requires | AcrossAI Pro, plus LearnDash LMS active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
That is the point of it: recognising something the trigger cannot detect, or correcting a badge that should have fired and did not.
The badge’s own points are recorded with the award, so the learner’s points total moves accordingly — this is not a cosmetic grant.
The occurrence limit is respected by default. A badge limited to one award per learner will not be granted twice, which stops a retry inflating somebody’s points.
ignore_limit=true awards beyond it, which is occasionally right for a repeatable badge whose trigger missed several occurrences.
The learner can be a user ID, login or email.
Not idempotent when the limit is ignored — each call awards again.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
learner | string | integer | Yes | User ID, login or email. |
achievement_id | integer | Yes | The badge to award. |
ignore_limit | boolean | No | Award beyond the achievement’s occurrence limit. |
What comes back
| Name | Type | What it is |
|---|---|---|
awarded | boolean | Whether the award was recorded. |
points | integer | The points recorded with it. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present 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:
Give this learner the onboarding badge.
It resolves to one call:
{
"ability": "learndash/award-achievement",
"parameters": {
"learner": "sam@example.com",
"achievement_id": 900
}
}Worth knowing
- The learner need not have met the condition.
- Points move with the award — it is not cosmetic.
- The occurrence limit is respected unless you ignore it.
- Ignoring the limit makes repeated calls award repeatedly.
Related abilities
- LearnDash Revoke Achievement — take one back
- LearnDash List User Achievements — what they already hold
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category