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.
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
Field
Type
Description
user_id
number
WordPress user ID
user_login
text
Username
user_email
email
Email address
display_name
text
Display name
first_name
text
First name (from user meta)
last_name
text
Last name (from user meta)
phone
text
Phone number (from user_phone, phone, or billing_phone meta)
user_url
text
User’s website URL
user_registered
text
Registration date
roles
array
Assigned 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
Field
Type
Description
user_id
number
User ID
user_login
text
Username
user_email
email
New email address
display_name
text
New display name
first_name
text
First name
last_name
text
Last name
user_url
text
Website URL
roles
array
Current roles
old_user_email
email
Email address before the update
old_display_name
text
Display 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
Field
Type
Description
user_id
number
User ID
user_login
text
Username
user_email
email
Email address
display_name
text
Display name
first_name
text
First name
last_name
text
Last name
roles
array
User roles
login_time
datetime
Login 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
Field
Type
Description
user_id
number
User ID
user_login
text
Username
user_email
email
Email address
display_name
text
Display name
first_name
text
First name
last_name
text
Last name
roles
array
User roles
logout_time
datetime
Logout 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
Field
Type
Description
user_id
number
User ID
user_login
text
Username
user_email
email
Email address
display_name
text
Display name
first_name
text
First name
last_name
text
Last name
new_role
text
The role that was just assigned
old_roles
array
Roles before the change
current_roles
array
Roles 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
Field
Type
Description
user_id
number
ID of the deleted user
user_login
text
Username
user_email
email
Email address
display_name
text
Display name
first_name
text
First name
last_name
text
Last name
roles
array
Roles at time of deletion
reassign_to
number
User ID that the deleted user’s posts were reassigned to (nullable — may be empty)
deleted_at
text
Deletion 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
Field
Type
Description
user_id
number
User ID
user_login
text
Username
user_email
email
Email address
user_nicename
text
URL-friendly name
display_name
text
Display name
first_name
text
First name
last_name
text
Last name
roles
array
User roles
reset_date
text
Date and time of the reset
reset_timestamp
number
Unix 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.
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
Field
Type
Description
post_id
number
Post ID
post_title
text
Post title
post_content
textarea
Full post content
post_excerpt
textarea
Post excerpt
post_url
url
Permalink
post_type
text
Post type
post_date
text
Publish date
post_author_id
number
Author’s user ID
post_author_name
text
Author’s display name
post_author_email
email
Author’s email address
categories
array
Category names
tags
array
Tag 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
Field
Type
Description
post_id
number
Post ID
post_title
text
New title
post_content
textarea
New content
post_excerpt
textarea
New excerpt
post_url
url
Permalink
post_modified
datetime
Modified date
post_author_name
text
Author’s name
post_author_email
email
Author’s email address
categories
array
Categories
tags
array
Tags
old_title
text
The title before the update
old_content
textarea
The 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
Field
Type
Description
post_id
number
Post ID
post_title
text
Post title
post_content
textarea
Post content
post_type
text
Post type
post_status
text
Status at the time of deletion
post_date
text
Original publish date
post_url
url
Permalink (captured before deletion)
post_author_id
number
Author’s user ID
post_author_name
text
Author’s name
post_author_email
email
Author’s email address
categories
array
Categories
tags
array
Tags
deleted_at
text
Deletion 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
Field
Type
Description
post_id
number
Post ID
post_title
text
Post title
old_status
text
Status before the transition
new_status
text
Status after the transition
post_type
text
Post type
post_date
text
Post date
post_url
url
Permalink
post_author_id
number
Author’s user ID
post_author_name
text
Author’s name
post_author_email
email
Author’s email address
categories
array
Categories
tags
array
Tags
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.
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.
User ID (only present if the commenter is logged in)
user_login
text
Username (only present if the commenter is logged in)
user_email
email
User 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
Field
Type
Description
comment_id
number
Comment ID
comment_content
text
The comment text
comment_author
text
Commenter’s name
comment_author_email
email
Commenter’s email address
comment_author_url
url
Commenter’s website URL
comment_author_ip
text
IP address
comment_date
text
Submission date
comment_type
text
Comment type
comment_parent
number
Parent comment ID
post_id
number
Post ID
post_title
text
Post title
post_url
url
Post URL
user_id
number
User ID (if the commenter is a registered user)
old_status
text
The 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.
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
Field
Type
Description
attachment_id
number
Attachment post ID
file_name
text
Original filename
file_url
url
Public URL of the uploaded file
file_path
text
Server file path
file_type
text
MIME type string
file_extension
text
File extension (jpg, pdf, mp4, etc.)
file_size
number
File size in bytes
mime_type
text
Full MIME type
upload_date
text
Upload timestamp
title
text
Media title
caption
text
Media caption
description
text
Media description
alt_text
text
Image alt text
uploaded_by_id
number
User ID of the uploader
uploaded_by_login
text
Username of the uploader
uploaded_by_email
email
Email of the uploader
uploaded_by_name
text
Display name of the uploader
width
number
Image width in pixels (images only)
height
number
Image height in pixels (images only)
is_image
boolean
Whether 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 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.
Field
Type
Description
order_id
number
Order ID
order.id
number
Order ID (nested format)
order.status
text
Order status at creation
order.total
number
Order total
order.currency
text
Currency code
order.subtotal
number
Subtotal
order.shipping_total
number
Shipping total
order.tax_total
number
Tax total
order.discount_total
number
Discount total
order.payment_method
text
Payment method ID
order.payment_method_title
text
Payment method display name
order.date_created
text
Order creation date
customer.id
number
Customer user ID
customer.email
email
Customer email address
customer.first_name
text
Customer first name
customer.last_name
text
Customer last name
customer.phone
text
Customer phone number
billing.address_1
text
Billing address line 1
billing.city
text
Billing city
billing.country
text
Billing country code
items
array
Order 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.