GoHighLevel
Connect one GoHighLevel business account with OAuth and publish RankPine articles to its native Blog.
RankPine publishes to the native GoHighLevel Blog feature through HighLevel's OAuth and Blog APIs. The connection is restricted to the single business account (location) you choose during authorization.
This integration does not publish to HighLevel-hosted WordPress, Funnels, standalone Websites without a Blog, or Social Planner.
Before you connect
In the intended HighLevel business account, confirm that:
- Sites → Blogs contains at least one native Blog
- The Blog has at least one author
- Any categories you want to apply already exist
- You can install marketplace apps for that business account
Connect and choose the target
Authorize the business account
In RankPine, open Settings → Integrations → GoHighLevel and choose Connect with HighLevel. HighLevel opens its location chooser. Select the exact business account that owns the Blog and approve the requested permissions.
For a direct connection, RankPine accepts only the selected location grant. For an organization bulk Marketplace install, HighLevel may first return a temporary Company grant. RankPine immediately exchanges it for separate grants for the selected locations, maps each location to a different RankPine site, and never stores the Company grant.
Choose the business accounts explicitly during installation. Automatic install to future accounts is not supported because every new account must first be mapped to its own RankPine site and paid seat.
Choose the native Blog and author
After HighLevel returns you to RankPine, open Settings on the GoHighLevel card. Choose:
- The target native Blog
- The author assigned to every RankPine post
- Any optional default categories
- Default comma-separated tags
- Published, Draft, or Scheduled behavior
- Whether to set the RankPine hero as the featured image
The connection remains disabled until a valid Blog and author are saved.
Add a public URL base when useful
HighLevel does not consistently return a public URL for every Blog
configuration. If your public posts use a stable prefix, enter it, for example
https://blog.example.com/post/. RankPine appends the article slug and uses that
URL as the post's canonical link and returned external URL.
Leave this blank when HighLevel should manage its own canonical URL.
Marketplace installation and billing
RankPine is paid through Polar rather than the HighLevel wallet. During a Marketplace installation, HighLevel sends you to RankPine's billing page before OAuth completes. Sign in or create an account, map every selected HighLevel location to a different RankPine site, and start or verify your RankPine subscription.
RankPine verifies the current entitlement directly with Polar and reports a separate recurring billing authorization to HighLevel for each location. The report contains the location, RankPine subscription ID, per-location amount, and completed or failed status. HighLevel does not receive your card or bank details. If the Polar subscription later loses its entitlement, RankPine reports the failed status through the signed Polar webhook lifecycle.
What RankPine sends
Each HighLevel Blog post receives:
- Title, meta description, slug, and sanitized article HTML
- Featured-image URL and alt text when enabled
- The selected Blog, author, category IDs, and default tags
- Word count
- Draft, published, or scheduled status and an ISO publication time
- A canonical URL only when you configured a public URL base
Scheduled mode uses the article's RankPine calendar time. A future time creates a
SCHEDULED post; a missing or elapsed time publishes immediately. Draft mode
always leaves the post unpublished in HighLevel.
Updates and duplicate prevention
RankPine stores the HighLevel post ID returned after a successful publish. An
editor update sends PUT /blogs/posts/:postId for that same ID. Before a new
post is created, RankPine also runs HighLevel's slug check; a collision stops the
publish with an actionable error instead of creating a second post.
The durable publish job records a successful delivery before later retries. A retry either skips that destination or updates the recorded post; it does not blindly create another one.
Permissions and token security
RankPine requests only the Blog permissions needed to list Blogs, authors and
categories, check slugs, create posts, and update posts. It also requests
oauth.write so an organization bulk install can be narrowed to the selected account
grants and Disconnect can invoke HighLevel's uninstall API for a location.
Access and rotating refresh tokens are encrypted at rest. They are never placed in RankPine's readable integration config, returned to the browser, or written to publish and audit logs. The non-secret location ID, selected resource IDs, and publishing preferences remain in config so the settings screen can display them.
Reconnect, test, or disconnect
- Test re-lists the selected Blog, author, and categories. A missing resource changes the card to Error with a safe message.
- Settings changes publishing defaults without asking for OAuth again.
- Reconnect runs a new location-scoped OAuth flow while preserving valid selections for the same location.
- Disconnect calls HighLevel's uninstall endpoint, removes the encrypted grant from RankPine, and stops future publishing. If HighLevel cannot confirm revocation, RankPine tells you to remove the app under HighLevel's installed apps as a final step.
Disconnecting does not delete posts already created in HighLevel and does not cancel the RankPine subscription. It removes the location's billing authorization mapping so a later reinstall must be authorized again.
Troubleshooting
GoHighLevel and HighLevel are trademarks of their respective owner. RankPine is an independent service and is not affiliated with or endorsed by HighLevel.