All Free Actions Reference: Email, User, Post, Comment, HTTP Request, and AI

This page is the complete reference for every action included in the free Krom Automation plugin. Each entry covers what the action does, every configurable field, which fields support merge tags, and typical use cases.

Use this page when you need to look up exactly what an action does or which fields are required before adding it to a workflow.

Quick reference #

Action nameCategoryAction ID
Send EmailEmailsend_email
Create UserUsercreate_user
Update User MetaUserupdate_user_meta
Change User RoleUserchange_user_role
Send Password ResetUsersend_password_reset
Create PostPostcreate_post
Update PostPostupdate_post
Update Post FieldPostupdate_post_field
Change Post StatusPostchange_post_status
Add Post MetaPostadd_post_meta
Delete PostPostdelete_post
Add CommentCommentadd_comment
Update Comment StatusCommentupdate_comment_status
Add Comment LabelCommentadd_comment_label
Add Comment MetaCommentadd_comment_meta
HTTP RequestIntegrationhttp_request
AI Generate TextAIai_generate_text
AI Content ModerationAIai_content_moderation
AI Auto-TagAIai_auto_tag
Create WooCommerce CouponWooCommercewc_create_coupon
Update Order StatusWooCommercewc_update_order_status

Email action #

Send Email

Sends an email to any recipient with a customisable subject and message body. Krom Automation sends using WordPress’s wp_mail() function, which uses your server’s email configuration or any SMTP plugin you have installed.

FieldRequiredMerge tagsDescription
toYesYesRecipient email address. Use {{user_email}} or {{customer.email}} for dynamic recipients.
subjectYesYesEmail subject line.
messageYesYesEmail body. HTML and plain text are both supported.
from_nameNoYesSender display name. Defaults to your WordPress site name.
from_emailNoYesSender email address. Defaults to your WordPress admin email.
content_typeNoNoSet to html or plain_text. Defaults to html.
template_idNoNoSelect a saved Pro email template. Requires Krom Automation Pro and the visual email builder.

Common uses: Welcome emails, order confirmations, admin notifications, comment alerts, post publication notifications.

Tip: If emails aren’t arriving, the issue is almost always with your server’s email configuration, not Krom Automation. Check your SMTP setup and test with WP Mail SMTP’s built-in email test before troubleshooting the workflow itself.

User actions #

Create User

Creates a new WordPress user account. If you provide an email address that already exists in the database, WordPress will return an error and Krom Automation will log the failed step.

FieldRequiredDescription
usernameYesUsername for the new account. Must be unique.
emailYesEmail address. Must be unique.
passwordNoAccount password. If left empty, WordPress auto-generates a secure password.
roleNoWordPress role to assign (subscriber, editor, author, etc.). Defaults to the site’s default new user role if left empty.
first_nameNoFirst name, stored as user meta.
last_nameNoLast name, stored as user meta.
send_notificationNoToggle. When enabled, WordPress sends its standard new user notification email to the new account.

Common uses: Automatically provisioning user accounts after a form submission, creating accounts as part of a multi-step onboarding workflow.

Update User Meta

Sets or updates a single user meta field on a WordPress user. If the meta key doesn’t exist, it creates it. If it already exists, it overwrites it.

FieldRequiredDescription
user_idNoThe user ID to update. If left empty, Krom Automation uses the user from the triggering event.
user_emailNoIdentify the target user by email address instead of ID. Either user_id or user_email is required.
meta_keyYesThe meta key to set (e.g., last_login_date, onboarding_complete).
meta_valueYesThe value to store. Merge tags are supported.

Common uses: Storing a last login timestamp, flagging users as having completed onboarding, saving custom profile data captured through a form submission.

Change User Role

Changes the WordPress role assigned to a user. The specified role replaces the user’s current role — it does not add to existing roles.

FieldRequiredDescription
roleYesThe new role to assign. Select from available WordPress roles.

The user is identified from the triggering event. Krom Automation applies the role change to the user whose action fired the trigger.

Common uses: Automatically upgrading a subscriber to a paying member after a WooCommerce purchase, downgrading a user’s role when a subscription expires.

Send Password Reset

Sends a WordPress password reset email to a specified user. This uses WordPress’s built-in password reset mechanism and sends the standard reset link email.

FieldRequiredDescription
user_identifierYesThe user ID or email address of the user to send the reset to. Merge tags supported.

Common uses: Triggering a password reset reminder after a delayed workflow, sending a reset link as part of a security alert workflow.

Post actions #

Create Post

Creates a new WordPress post or custom post type entry. The post is created immediately when the action runs.

FieldRequiredDescription
post_titleYesTitle of the new post. Merge tags supported.
post_contentNoBody content of the post. Merge tags supported. Useful for injecting AI-generated content.
post_statusNoStatus to set on creation: publish, draft, pending, or others. Defaults to draft if not set.
post_typeNoPost type: post, page, or any registered custom post type. Defaults to post.

Common uses: Auto-creating a draft post from a form submission, programmatically generating content from AI-generated text, creating a log post for record keeping.

Update Post

Updates one or more fields on an existing post. Only the fields you fill in are updated — empty fields are left unchanged on the existing post.

FieldRequiredDescription
post_idYesThe ID of the post to update. Use {{post_id}} when updating the post from the triggering event.
post_titleNoNew title. Merge tags supported.
post_contentNoNew content. Merge tags supported.
post_excerptNoNew excerpt. Merge tags supported.
post_statusNoNew status (publish, draft, pending, trash, etc.).

Common uses: Updating a post’s content with dynamic data after it’s created, changing a post’s status as part of a multi-step workflow.

Update Post Field

Updates a single field on a post with precise control over whether the new value replaces or appends to the existing content. Use this action instead of Update Post when you only need to change one field and want append mode.

FieldRequiredDescription
post_idYesPost ID. Use {{post_id}} to reference the post from the triggering event.
fieldYesThe field to update: title, content, or excerpt.
valueYesThe new value. Merge tags supported.
modeNoreplace overwrites the existing content. append adds the new value after the existing content. Defaults to replace.

Common uses: Appending an AI-generated summary to the post excerpt after the AI Generate Text action runs, prefixing a post title with a label like [Updated].

Change Post Status

Changes the status of an existing post without modifying any other post fields.

FieldRequiredDescription
post_idYesPost ID. Merge tags supported.
statusYesTarget status: publish, draft, pending, private, trash, or any registered custom status.

Common uses: Auto-publishing a draft post after an approval step, moving a post to trash automatically after a set period, setting a post to pending for editorial review.

Add Post Meta

Adds or updates a custom field (post meta) on a post. If the meta key doesn’t exist, it creates it. If it already exists, it updates the value.

FieldRequiredDescription
post_idYesPost ID. Merge tags supported.
meta_keyYesThe meta key name (e.g., review_score, ai_summary, featured_until).
meta_valueYesThe value to store. Merge tags supported.
value_typeNoData type for casting the value before storage. Useful when storing numbers or boolean values.

Common uses: Storing AI-generated output as a post meta field, recording a review score, marking a post as reviewed or processed, setting a custom field value for use by other plugins.

Delete Post

Permanently deletes a post or moves it to the trash. This is an irreversible action when force_delete is enabled — the post cannot be recovered after permanent deletion.

FieldRequiredDescription
post_idYesPost ID. Merge tags supported.
force_deleteNoToggle. Set to true to permanently delete the post. Set to false to move it to the trash instead. Defaults to false.

Common uses: Cleaning up temporary or expired posts automatically, archiving posts to trash based on a date condition.

Comment actions #

Add Comment

Programmatically adds a comment to a post. The comment is created immediately when the action runs and is treated as an approved comment by default.

Fields: Post ID, comment content, author name, author email.

Common uses: Auto-replying to a first comment on a post, adding a system-generated note to a post’s comment thread for internal tracking.

Update Comment Status

Changes the moderation status of an existing comment.

Fields: Comment ID, new status.

Available statuses: approve, hold, spam, trash.

Common uses: Auto-approving comments from logged-in users using a condition on user_id, moving comments flagged by AI moderation to spam automatically.

Add Comment Label

Adds a custom label to a comment, stored as comment meta. Labels are text strings (like toxic, spam, positive, reviewed) that you define. Multiple labels can be added to the same comment by running this action more than once.

Fields: Comment ID, label text.

Common uses: Tagging comments after AI moderation analysis, marking comments as reviewed by a moderator, classifying comments by sentiment for reporting purposes.

Add Comment Meta

Adds or updates a custom metadata field on a comment. If the key exists, it overwrites the previous value.

Fields: Comment ID, meta key, meta value.

Common uses: Storing an AI moderation confidence score, recording the IP risk level of a commenter, tracking workflow processing status per comment.

Integration action #

HTTP Request

Sends an HTTP request to any external URL. Use this action to connect Krom Automation to any service that has a web API or accepts webhook payloads, without needing Krom Automation Pro integrations.

FieldRequiredMerge tagsDescription
urlYesYesThe full URL including protocol (e.g., https://api.example.com/notify).
methodYesNoHTTP method: GET, POST, PUT, PATCH, or DELETE.
headersNoYesRequest headers as a JSON object (e.g., {"Authorization": "Bearer {{api_key}}"}).
body_typeNoNoFormat for the request body: json, form, or raw.
bodyNoYesThe request body content. Merge tags supported.
timeoutNoNoRequest timeout in seconds. Minimum 5, maximum 60. Default is 30.
response_keyNoNoVariable name to store the response under. Defaults to http_response.

Response data available in later steps:

TagWhat it returns
{{http_response.status}}HTTP status code of the response
{{http_response.body}}Raw response body as a string
{{http_response.json.fieldname}}A specific field parsed from a JSON response

Common uses: Sending a webhook notification to Zapier, Make.com, or a custom endpoint; calling a CRM or external API with user or order data; posting a message to Slack or Discord without a Pro integration; chaining an API call into a later email or post update action using the response data.

AI actions #

All three AI actions require at least one AI provider API key configured in Krom Automation > Settings > AI Settings. Supported providers are OpenAI, Google Gemini, and Groq. You only need one provider configured to use all three actions.

AI Generate Text

Sends a prompt to a configured AI language model and stores the generated text as a workflow variable. You can then use that variable in any action that follows in the same workflow.

FieldDescription
promptThe prompt to send to the AI. Merge tags are supported, so you can include post content, user data, or any other trigger data in the prompt.
system_promptOptional system-level instructions that shape how the AI responds (e.g., “You are a concise blog editor. Return only the excerpt, no more than 30 words.”).
modelWhich AI model to use: Auto, GPT-4o Mini, GPT-4o, Gemini 2.0 Flash, Gemini 2.5 Flash, Gemini 2.5 Pro, Llama 3.3 70B, Llama 3.1 8B, or Mixtral 8x7B. Auto selects the best available model based on your configured API keys.
creativityControls the randomness of the output: precise (low temperature), balanced (medium), or creative (high).
max_tokensMaximum length of the AI response in tokens. Range: 50 to 4096. Default: 1024.
output_keyThe variable name to store the result under. Use this name as a merge tag in later steps (e.g., if you set output_key to ai_excerpt, use {{ai_excerpt}} in the next action).

Common uses: Auto-generating a post excerpt after a post is published, writing a personalised email message based on user data, summarising a long piece of content, drafting social media copy.

AI Content Moderation

Analyses text content for spam or toxic content using AI and optionally takes an action on the flagged content. Designed to work with the Comment Submitted trigger.

FieldDescription
contentThe text to analyse. Use {{comment_content}} to moderate the triggering comment. Merge tags are supported.
moderation_typeWhat to check for: all (both spam and toxicity), spam only, or toxicity only.
sensitivityHow strict the detection is: low, medium, or high. Higher sensitivity flags more content but may produce more false positives.
status_actionWhat to do when content is flagged: none (log only), hold (set to pending), spam (mark as spam), or trash (move to trash).
add_labelToggle. When enabled, adds a label to the comment after moderation.
custom_labelCustom label text to apply when flagged. If left empty, Krom Automation uses the moderation category returned by the AI (e.g., “spam” or “toxic”).

Common uses: Automatically holding or spamming toxic comments before a human sees them, running AI moderation as the first step in a comment workflow before deciding whether to approve or discard.

AI Auto-Tag

Analyses post content using AI and automatically applies relevant tags and/or categories to the post. Works best when paired with the Post Published trigger.

FieldDescription
content_sourceWhat content to analyse: title_content (both title and body), title_only, content_only, or custom (lets you specify custom content below).
custom_contentThe custom text to analyse. Only used when content_source is set to custom. Merge tags supported.
taxonomy_typeWhich taxonomies to apply terms to: both (tags and categories), tags only, or categories only.
max_tagsMaximum number of terms to suggest and apply. Range: 1 to 15. Default: 5.
use_existingWhether to only apply existing taxonomy terms (existing_only) or allow the AI to create new terms if no match is found (create_new).

Common uses: Automatically tagging new blog posts on publication, batch categorising imported content, ensuring posts are consistently tagged without manual effort.

WooCommerce actions #

WooCommerce actions are bundled in the free plugin and are only available when WooCommerce is installed and active.

Create WooCommerce Coupon

Creates a new WooCommerce discount coupon programmatically. The coupon is created immediately when the action runs and is available in the WooCommerce coupons list.

FieldDescription
coupon_codeThe coupon code. Merge tags supported — you can generate a unique code using {{user_id}} or {{order_id}} as part of the code string.
discount_typeType of discount: percent (percentage off), fixed_cart (fixed amount off the cart), or fixed_product (fixed amount off specific products).
amountThe discount amount. For percentage discounts, enter the number without the % sign (e.g., 20 for 20% off).
descriptionInternal description visible only in the WooCommerce admin. Useful for noting which workflow generated the coupon.
expires_daysNumber of days from the creation date until the coupon expires. Leave empty for no expiry.
usage_limitTotal number of times the coupon can be used across all customers. Leave empty for unlimited.
usage_limit_per_userNumber of times a single customer can use the coupon. Leave empty for unlimited.
individual_useToggle. When enabled, this coupon cannot be used alongside other coupons.

Common uses: Generating a personalised post-purchase discount for each new customer, creating a loyalty reward coupon when an order is completed, issuing a welcome coupon to new users.

Update Order Status

Updates the status of a WooCommerce order.

Fields: Order ID, new status.

The order ID comes from the triggering event when used with a WooCommerce trigger. The status can be set to any valid WooCommerce order status: pending, processing, on-hold, completed, cancelled, refunded, or failed.

Common uses: Automatically completing orders that don’t require manual fulfilment, moving orders to on-hold pending a review, marking orders as failed as part of a payment follow-up workflow.

What are your feelings

Updated on July 15, 2026