All Free Triggers Reference: User, Post, Comment, Media, and WooCommerce

This page is the complete reference for every trigger included in the free Krom Automation plugin. Each trigger entry covers what event fires it, what WordPress hook it uses, every data field it exposes, and typical use cases.

Use this page when you need to look up what data a specific trigger makes available for merge tags or conditions.

WooCommerce triggers are included in the free plugin but only activate when WooCommerce is installed and active on your site.

Quick reference #

Trigger nameCategoryTrigger ID
User RegisteredUseruser_registered
User Profile UpdatedUseruser_updated
User LoginUseruser_login
User LogoutUseruser_logout
User Role ChangedUseruser_role_changed
User DeletedUseruser_deleted
Password ResetUserpassword_reset
Post PublishedPostpost_published
Post UpdatedPostpost_updated
Post DeletedPostpost_deleted
Post Status ChangedPostpost_status_changed
Comment SubmittedCommentcomment_submitted
Comment ApprovedCommentcomment_approved
Media UploadedMediamedia_uploaded
WooCommerce Order CreatedWooCommercewoocommerce_order_created
WooCommerce Order CompletedWooCommercewoocommerce_order_completed

User triggers #

User Registered

Fires when a new user account is created on the site, regardless of how registration happened — the default WordPress registration form, WooCommerce checkout, a membership plugin, or any other method that calls the user_register hook.

WordPress hook: user_register

FieldTypeDescription
user_idnumberWordPress user ID
user_logintextUsername
user_emailemailEmail address
display_nametextDisplay name
first_nametextFirst name (from user meta)
last_nametextLast name (from user meta)
phonetextPhone number (from user_phone, phone, or billing_phone meta)
user_urltextUser’s website URL
user_registeredtextRegistration date
rolesarrayAssigned roles

Common uses: Welcome email sequence, admin notification of new signups, auto-assigning user meta on registration, syncing new users to a CRM.

User Profile Updated

Fires when a user saves changes to their WordPress profile. Fires on any profile update, including email address changes and display name changes.

WordPress hook: profile_update

FieldTypeDescription
user_idnumberUser ID
user_logintextUsername
user_emailemailNew email address
display_nametextNew display name
first_nametextFirst name
last_nametextLast name
user_urltextWebsite URL
rolesarrayCurrent roles
old_user_emailemailEmail address before the update
old_display_nametextDisplay name before the update

Common uses: Notifying an admin when a user changes their email address, syncing updated profile data to third-party systems, maintaining an audit log of profile changes.

User Login

Fires each time a user successfully logs in to the WordPress site.

WordPress hook: wp_login

FieldTypeDescription
user_idnumberUser ID
user_logintextUsername
user_emailemailEmail address
display_nametextDisplay name
first_nametextFirst name
last_nametextLast name
rolesarrayUser roles
login_timedatetimeLogin timestamp

Common uses: Updating a “last login” user meta field, logging login activity, triggering security alerts based on login conditions.

Note: This trigger fires on every login. On sites with many active users, this can generate a high volume of workflow executions. Use conditions and run control carefully. If you only need to track the first login per user, set Run Control to Run once per entity.

User Logout

Fires when a user logs out using WordPress’s standard logout mechanism.

WordPress hook: wp_logout

FieldTypeDescription
user_idnumberUser ID
user_logintextUsername
user_emailemailEmail address
display_nametextDisplay name
first_nametextFirst name
last_nametextLast name
rolesarrayUser roles
logout_timedatetimeLogout timestamp

Common uses: Session tracking, activity logging.

User Role Changed

Fires when an existing user’s WordPress role is changed. This trigger does not fire when a new user registers, even if a role is assigned at registration.

WordPress hook: set_user_role

FieldTypeDescription
user_idnumberUser ID
user_logintextUsername
user_emailemailEmail address
display_nametextDisplay name
first_nametextFirst name
last_nametextLast name
new_roletextThe role that was just assigned
old_rolesarrayRoles before the change
current_rolesarrayRoles after the change

Common uses: Notifying a user when they’ve been upgraded to a new role, triggering an onboarding email sequence for new editors or authors, granting or revoking access to content based on role.

User Deleted

Fires immediately before a user is permanently deleted from WordPress. Because this fires before deletion completes, the user’s data is still accessible through the trigger fields.

WordPress hook: delete_user

FieldTypeDescription
user_idnumberID of the deleted user
user_logintextUsername
user_emailemailEmail address
display_nametextDisplay name
first_nametextFirst name
last_nametextLast name
rolesarrayRoles at time of deletion
reassign_tonumberUser ID that the deleted user’s posts were reassigned to (nullable — may be empty)
deleted_attextDeletion timestamp

Common uses: Archiving user data to an external system before the account is deleted, notifying an admin of account deletion.

Password Reset

Fires after a user successfully completes a password reset. It does not fire when a reset link is requested, only after the new password is saved.

WordPress hook: password_reset

FieldTypeDescription
user_idnumberUser ID
user_logintextUsername
user_emailemailEmail address
user_nicenametextURL-friendly name
display_nametextDisplay name
first_nametextFirst name
last_nametextLast name
rolesarrayUser roles
reset_datetextDate and time of the reset
reset_timestampnumberUnix timestamp of the reset

Common uses: Sending a security confirmation email after a successful password reset, logging password reset events, re-triggering an onboarding sequence after account recovery.

Post triggers #

Post Published

Fires when a post of type post transitions to publish status for the first time. It does not fire when a post is re-published after being unpublished, and it does not fire for pages or custom post types. Use the Post Status Changed trigger for those scenarios.

WordPress hook: transition_post_status

FieldTypeDescription
post_idnumberPost ID
post_titletextPost title
post_contenttextareaFull post content
post_excerpttextareaPost excerpt
post_urlurlPermalink
post_typetextPost type
post_datetextPublish date
post_author_idnumberAuthor’s user ID
post_author_nametextAuthor’s display name
post_author_emailemailAuthor’s email address
categoriesarrayCategory names
tagsarrayTag names

Common uses: Notifying subscribers or an editorial team that a new post is live, auto-generating a post excerpt with AI, pinging external APIs or services on publication.

Post Updated

Fires when an already-published post is updated and saved. It does not fire on the initial publish event — only on subsequent saves to a post that already has publish status.

WordPress hook: post_updated

FieldTypeDescription
post_idnumberPost ID
post_titletextNew title
post_contenttextareaNew content
post_excerpttextareaNew excerpt
post_urlurlPermalink
post_modifieddatetimeModified date
post_author_nametextAuthor’s name
post_author_emailemailAuthor’s email address
categoriesarrayCategories
tagsarrayTags
old_titletextThe title before the update
old_contenttextareaThe content before the update

Common uses: Notifying an editor when a post is revised, logging content change history, re-generating SEO data when post content changes.

Post Deleted

Fires when a post is permanently deleted from WordPress. This trigger does not fire when a post is moved to the trash — only when it is permanently removed. Use Post Status Changed to catch the trash transition.

WordPress hook: before_delete_post

FieldTypeDescription
post_idnumberPost ID
post_titletextPost title
post_contenttextareaPost content
post_typetextPost type
post_statustextStatus at the time of deletion
post_datetextOriginal publish date
post_urlurlPermalink (captured before deletion)
post_author_idnumberAuthor’s user ID
post_author_nametextAuthor’s name
post_author_emailemailAuthor’s email address
categoriesarrayCategories
tagsarrayTags
deleted_attextDeletion timestamp

Common uses: Archiving deleted content to external storage before it disappears, notifying an admin when a post is permanently removed.

Post Status Changed

Fires on any post status transition for any post type. This includes draft to pending, pending to publish, publish to trash, and any other status change. Because it fires for all post types (posts, pages, and custom post types), it’s the most flexible post trigger.

WordPress hook: transition_post_status

FieldTypeDescription
post_idnumberPost ID
post_titletextPost title
old_statustextStatus before the transition
new_statustextStatus after the transition
post_typetextPost type
post_datetextPost date
post_urlurlPermalink
post_author_idnumberAuthor’s user ID
post_author_nametextAuthor’s name
post_author_emailemailAuthor’s email address
categoriesarrayCategories
tagsarrayTags

Common uses: Notifying an author when their pending post is approved and published, alerting an editor when a post is moved to trash, triggering actions on any custom post type status change.

Tip: Use conditions on old_status and new_status to target specific transitions. For example, set old_status equals pending and new_status equals publish to only act when a pending post is approved.

Comment triggers #

Comment Submitted

Fires immediately when any comment is posted, regardless of whether it’s approved, held, or marked as spam. This trigger fires before moderation decisions are made.

WordPress hook: comment_post

FieldTypeDescription
comment_idnumberComment ID
comment_contenttextThe comment text
comment_authortextCommenter’s name
comment_author_emailemailCommenter’s email address
comment_author_urlurlCommenter’s website URL
comment_author_iptextCommenter’s IP address
comment_datetextSubmission date
comment_approvedtextApproval status (0 = pending, 1 = approved, spam = spam)
comment_typetextComment type
comment_parentnumberParent comment ID (for replies)
post_idnumberID of the post the comment is on
post_titletextTitle of the post
post_urlurlPermalink of the post
user_idnumberUser ID (only present if the commenter is logged in)
user_logintextUsername (only present if the commenter is logged in)
user_emailemailUser email (only present if the commenter is logged in)

Common uses: Running AI spam or toxicity detection on the comment content immediately on submission, notifying a moderator of new comments, auto-approving comments from logged-in users using a condition on user_id.

Comment Approved

Fires when a comment transitions from any status to approved. This fires whether a comment was manually approved by an admin or auto-approved by WordPress.

WordPress hook: transition_comment_status

FieldTypeDescription
comment_idnumberComment ID
comment_contenttextThe comment text
comment_authortextCommenter’s name
comment_author_emailemailCommenter’s email address
comment_author_urlurlCommenter’s website URL
comment_author_iptextIP address
comment_datetextSubmission date
comment_typetextComment type
comment_parentnumberParent comment ID
post_idnumberPost ID
post_titletextPost title
post_urlurlPost URL
user_idnumberUser ID (if the commenter is a registered user)
old_statustextThe comment’s status before approval

Common uses: Notifying the commenter that their comment was approved, sending a thank-you email to first-time commenters, awarding points or recognition for approved comments.

Media trigger #

Media Uploaded

Fires when any file is uploaded to the WordPress Media Library. This includes images, PDFs, videos, audio files, and any other file type WordPress accepts.

WordPress hook: add_attachment

FieldTypeDescription
attachment_idnumberAttachment post ID
file_nametextOriginal filename
file_urlurlPublic URL of the uploaded file
file_pathtextServer file path
file_typetextMIME type string
file_extensiontextFile extension (jpg, pdf, mp4, etc.)
file_sizenumberFile size in bytes
mime_typetextFull MIME type
upload_datetextUpload timestamp
titletextMedia title
captiontextMedia caption
descriptiontextMedia description
alt_texttextImage alt text
uploaded_by_idnumberUser ID of the uploader
uploaded_by_logintextUsername of the uploader
uploaded_by_emailemailEmail of the uploader
uploaded_by_nametextDisplay name of the uploader
widthnumberImage width in pixels (images only)
heightnumberImage height in pixels (images only)
is_imagebooleanWhether the uploaded file is an image

Common uses: Notifying a team when new media is uploaded, validating image dimensions using a condition on width and height, processing or logging uploaded file metadata.

WooCommerce triggers #

WooCommerce triggers are bundled with the free Krom Automation plugin. They activate automatically when WooCommerce is installed and active. They do not appear in the trigger list if WooCommerce is not active.

WooCommerce Order Created

Fires when a new WooCommerce order is created. This fires regardless of the payment status of the order, including pending payment, on hold, and processing.

FieldTypeDescription
order_idnumberOrder ID
order.idnumberOrder ID (nested format)
order.statustextOrder status at creation
order.totalnumberOrder total
order.currencytextCurrency code
order.subtotalnumberSubtotal
order.shipping_totalnumberShipping total
order.tax_totalnumberTax total
order.discount_totalnumberDiscount total
order.payment_methodtextPayment method ID
order.payment_method_titletextPayment method display name
order.date_createdtextOrder creation date
customer.idnumberCustomer user ID
customer.emailemailCustomer email address
customer.first_nametextCustomer first name
customer.last_nametextCustomer last name
customer.phonetextCustomer phone number
billing.address_1textBilling address line 1
billing.citytextBilling city
billing.countrytextBilling country code
itemsarrayOrder line items

Common uses: Sending an order confirmation email, notifying the admin or fulfilment team, syncing the customer to a CRM, triggering inventory updates.

WooCommerce Order Completed

Fires when a WooCommerce order status is set to completed. This typically happens when a store owner manually marks an order as complete, or when a fulfilment plugin does so automatically.

Exposed data fields: Same as WooCommerce Order Created above.

Common uses: Sending a post-purchase follow-up email, requesting a product review, triggering a loyalty reward or upsell sequence, issuing a discount coupon for the next purchase.

What are your feelings

Updated on July 15, 2026