HighLevel (GoHighLevel) workflows can create a WordPress site for a client the moment they buy, book or sign. They can also start a follow-up workflow when the site is ready. This works in any sub-account today with HighLevel’s own webhook steps. The AnyPress app for HighLevel, which adds ready-made steps, is coming to the HighLevel Marketplace.
Before you start #
- Sign in at app.anypress.io and open API keys. Make a key and copy its secret: it is shown once.
- Use a storefront’s own key. With a partner key, add
?productId=and the storefront’s ID to each address below.
The webhook steps are HighLevel premium actions, which HighLevel bills to the sub-account per run.
Create a site from a workflow #
- In the sub-account, open Automation, then Workflows, and start a workflow from the trigger that should make the site, such as Order Submitted, Opportunity Status Changed or Contact Tag.
- Add the Custom Webhook action, set the method to POST and the URL to
https://api.anypress.io/v1/tenants. - Under authorization choose Basic Auth. Put the key in Username and the secret in Password.
- Set the content type to
application/jsonand paste this body:
{
"name": "{{contact.company_name}}",
"externalId": "{{contact.id}}",
"wordPressUserEmail": "{{contact.email}}",
"wordPressUserName": "{{contact.email}}",
"wordPressUserRole": "administrator"
}
- Save and publish the workflow.
name is the site’s name, up to 30 characters. externalId ties the site to the contact. If the workflow runs twice for the same contact, the second run gets the same site back instead of building another. The email makes the client’s WordPress login.
You can also send size (small, medium or large), groupName to copy a starting site group, and customDomainName for the client’s own domain.
The step answers at once, while the site is still being built. Building usually takes a few minutes, so send the welcome message from the next workflow, not right after this step.
Start a workflow when a site is ready #
- Start a second workflow with the Inbound Webhook trigger and copy its address.
- At app.anypress.io, open Webhooks, add that address and tick Site ready.
- Create one test site so the trigger receives a real event to read its fields from. The Send test button in AnyPress sends a test event without site fields, so it is no use for mapping.
- Add Find Contact with the contact ID set to
data.tenant.externalId, then your welcome email or SMS.
Each event brings the site with it under data.tenant: its name, externalId, domainName and status. A good welcome message gives the client their address and a link to choose a password: their address followed by /wp-login.php?action=lostpassword.
HighLevel’s Inbound Webhook can’t check AnyPress’s signature, so keep its address private. Anyone who has it can start the workflow.
The same way works for the other events, such as Site failed to tell your team, or Suspended to update the contact.
Suspend a site when a client cancels #
Add another Custom Webhook with the same Basic Auth, method POST, URL https://api.anypress.io/v1/tenants/suspend?externalId={{contact.id}} and no body. The site is backed up first, then taken offline. https://api.anypress.io/v1/tenants/resume?externalId={{contact.id}} brings it back.
The AnyPress app for HighLevel #
The app adds Create site, Get site, Suspend site, Resume site and Delete site actions, and a Site event trigger, to every sub-account’s workflows. You connect your AnyPress key once, an agency can install it on all its sub-accounts at once, and no webhook setup is needed. It is in HighLevel’s review now and this page will say when it is listed.
Questions? Write to support@anypress.io.
Watch it #
More videos: Video guides.