Social Media Keywords
General Bots provides native social media integration through BASIC keywords for posting content, scheduling, retrieving metrics, and managing posts across multiple platforms.
Platform Support
Supported platforms include Instagram, Facebook, LinkedIn, and Twitter/X. Each platform requires appropriate API credentials configured in your bot’s config.csv.
POST TO
Publish content to one or more social media platforms.
Single Platform
POST TO INSTAGRAM image, "Check out our new feature! #AI #Automation"
POST TO FACEBOOK image, caption
POST TO LINKEDIN image, caption
POST TO TWITTER image, caption
Multiple Platforms
Post to several platforms simultaneously:
POST TO "instagram,facebook,linkedin" image, caption
The keyword returns a post ID that can be used for metrics retrieval or deletion.
Example: Product Announcement
image = "/products/new-release.jpg"
caption = "Introducing our latest innovation! Available now. #NewProduct #Innovation"
post_id = POST TO "instagram,facebook" image, caption
SET BOT MEMORY "latest_post_id", post_id
TALK "Posted to Instagram and Facebook"
POST TO … AT (Scheduled)
Schedule posts for future publishing at a specific date and time.
POST TO INSTAGRAM AT "2025-02-01 10:00" image, caption
POST TO FACEBOOK AT "2025-02-15 09:00" image, "Coming soon!"
Campaign Scheduling
' Schedule a week of posts
images = LIST "/campaign/week1/"
dates = ["2025-02-03 09:00", "2025-02-04 09:00", "2025-02-05 09:00"]
FOR i = 0 TO LEN(images) - 1
POST TO "instagram,facebook" AT dates[i] images[i].path, captions[i]
NEXT i
TALK "Campaign scheduled: " + LEN(images) + " posts"
GET METRICS
Retrieve engagement metrics for published posts.
Platform-Specific Metrics
' Instagram metrics
metrics = GET INSTAGRAM METRICS "post-id"
TALK "Likes: " + metrics.likes + ", Comments: " + metrics.comments
' Facebook metrics
fb_metrics = GET FACEBOOK METRICS "post-id"
TALK "Shares: " + fb_metrics.shares + ", Reactions: " + fb_metrics.reactions
' LinkedIn metrics
li_metrics = GET LINKEDIN METRICS "post-id"
TALK "Impressions: " + li_metrics.impressions
' Twitter metrics
tw_metrics = GET TWITTER METRICS "post-id"
TALK "Retweets: " + tw_metrics.retweets + ", Likes: " + tw_metrics.likes
Metrics Report
SET SCHEDULE "every monday at 9am"
post_id = GET BOT MEMORY "latest_post_id"
metrics = GET INSTAGRAM METRICS post_id
WITH report
.post_id = post_id
.likes = metrics.likes
.comments = metrics.comments
.reach = metrics.reach
.engagement_rate = ROUND((metrics.likes + metrics.comments) / metrics.reach * 100, 2)
.report_date = NOW()
END WITH
SEND MAIL TO "marketing@company.com" SUBJECT "Weekly Social Report" BODY report
GET POSTS
List posts from a platform.
' Get all Instagram posts
posts = GET INSTAGRAM POSTS
FOR EACH post IN posts
TALK post.id + ": " + post.caption
NEXT post
' Get Facebook posts
fb_posts = GET FACEBOOK POSTS
DELETE POST
Remove a scheduled or published post.
DELETE POST "post-id"
TALK "Post removed"
Conditional Deletion
' Delete posts with low engagement
posts = GET INSTAGRAM POSTS
FOR EACH post IN posts
metrics = GET INSTAGRAM METRICS post.id
IF metrics.likes < 10 AND DATEDIFF("day", post.created_at, NOW()) > 30 THEN
DELETE POST post.id
TALK "Deleted low-engagement post: " + post.id
END IF
NEXT post
Campaign Examples
Welcome Campaign
ON FORM SUBMIT "signup"
name = fields.name
email = fields.email
' Welcome email immediately
SEND TEMPLATE "welcome", "email", email, #{name: name}
' Schedule social proof post
IF fields.share_permission = "yes" THEN
caption = "Welcome to our community, " + name + "! 🎉 #NewMember #Community"
POST TO INSTAGRAM AT DATEADD(NOW(), 1, "hour") "/templates/welcome-card.png", caption
END IF
END ON
Social Media Campaign
' social-campaign.bas
SET SCHEDULE "every day at 10am"
' Rotate through content library
content_index = GET BOT MEMORY "content_index"
IF content_index = "" THEN content_index = 0
content_library = [
#{image: "/content/tip1.png", caption: "Pro tip: Automate your workflows! #Productivity"},
#{image: "/content/tip2.png", caption: "Save hours every week with automation #Efficiency"},
#{image: "/content/tip3.png", caption: "Let AI handle the repetitive tasks #AI #Automation"}
]
current = content_library[content_index MOD LEN(content_library)]
post_id = POST TO "instagram,linkedin" current.image, current.caption
SET BOT MEMORY "content_index", content_index + 1
SET BOT MEMORY "last_post_id", post_id
TALK "Posted content #" + (content_index + 1)
Engagement Monitoring
SET SCHEDULE "every 6 hours"
posts = GET INSTAGRAM POSTS
total_engagement = 0
post_count = 0
FOR EACH post IN posts
IF DATEDIFF("day", post.created_at, NOW()) <= 7 THEN
metrics = GET INSTAGRAM METRICS post.id
total_engagement = total_engagement + metrics.likes + metrics.comments
post_count = post_count + 1
END IF
NEXT post
avg_engagement = IIF(post_count > 0, ROUND(total_engagement / post_count, 0), 0)
IF avg_engagement < 50 THEN
SEND MAIL TO "marketing@company.com" SUBJECT "Low Engagement Alert" BODY "Average engagement this week: " + avg_engagement
END IF
Configuration
Add social media credentials to your bot’s config.csv:
key,value
instagram-access-token,your-instagram-token
instagram-account-id,your-account-id
facebook-access-token,your-facebook-token
facebook-page-id,your-page-id
linkedin-access-token,your-linkedin-token
linkedin-organization-id,your-org-id
twitter-api-key,your-api-key
twitter-api-secret,your-api-secret
twitter-access-token,your-access-token
twitter-access-secret,your-access-secret
Best Practices
Schedule posts strategically. Analyze your audience engagement patterns and post when your followers are most active.
Use hashtags effectively. Include relevant hashtags but avoid overloading—3 to 5 well-chosen tags typically perform better than 30 generic ones.
Monitor metrics regularly. Set up scheduled reports to track engagement trends and adjust your content strategy.
Handle rate limits gracefully. Social platforms enforce API rate limits. Space out bulk operations and implement retry logic.
Store post IDs. Save post identifiers in BOT MEMORY for later metrics retrieval or deletion.
post_id = POST TO INSTAGRAM image, caption
SET BOT MEMORY "post_" + FORMAT(NOW(), "yyyyMMdd"), post_id
See Also
- SET SCHEDULE - Automate posting schedules
- Template Variables - Dynamic content in captions
- SEND TEMPLATE - Multi-channel messaging
- GET BOT MEMORY - Store post tracking data