Your agents post to your Facebook page on schedule, answer comments and messages as the page, and qualify each lead-form entry within seconds.
- Connect
- Sign in once, 5 grants
- Runs through
- Your account
- First run
- Read your page’s reach for the last 28 days, free on your account
- Sites
Schedule the free rent-reminder template for my Page on Thursday at 9:00 Central, and show me the post.
curl -X POST "https: //api.sb/ leaseline.app/ posts/ schedule? mode= try" \
-H "Authorization: Bearer $SB_TOKEN" \
-H "Content-Type: application/ json" \
-d '{"handle": "facebook: leaseline", "body": "Free template: the 3-text rent reminder schedule our pilot buildings use.", "link": "https: //leaseline.app/ templates/ rent-reminders", "at": "2026-10-29T14: 00: 00Z"}'
npx startup-builder do Post.schedule --try --data '{"handle": "facebook: leaseline", "body": "Free template: the 3-text rent reminder schedule our pilot buildings use.", "link": "https: //leaseline.app/ templates/ rent-reminders", "at": "2026-10-29T14: 00: 00Z"}'
{
"name": "do",
"arguments": {
"mode": "try",
"code": "return await $.Post.schedule({ handle: 'facebook: leaseline', body: 'Free template: the 3-text rent reminder schedule our pilot buildings use.', link: 'https: //leaseline.app/ templates/ rent-reminders', at: '2026-10-29T14: 00: 00Z' })"
}
}
import { $ } from 'startup-builder'
const result = await $.try.Post.schedule({ handle: 'facebook: leaseline', body: 'Free template: the 3-text rent reminder schedule our pilot buildings use.', link: 'https: //leaseline.app/ templates/ rent-reminders', at: '2026-10-29T14: 00: 00Z' })
{
"$type": "Post",
"mode": "try",
"stored": false,
"venue": "facebook",
"status": "scheduled",
"at": "2026-10-29T14: 00: 00Z",
"linkPreview": {
"title": "Rent reminder template",
"host": "leaseline.app"
}
}
Connect once
- Call
Integration.connectwithsystem:and'social' venue:, then open the'facebook' connectUrlit returns and sign in as yourself with Meta. - Pick the page your agents speak for; you need a role on it that can post.
- Call
Handle.connectto bind the page as your account.
| Grant | What it unlocks | Scope |
|---|---|---|
| Your pages | The list of pages you can act for, so you pick one | pages_show_list |
| Post | Text, links, photos, videos and reels posted as the page, now or later | pages_manage_posts |
| Read and answer | Reach and comments on each post, and replies to them | pages_read_engagement pages_manage_engagement |
| Messenger | Answers to the people who message the page | pages_messaging |
| Lead forms | Each lead-form entry, the moment it is submitted | leads_retrieval |
| To | Do this |
|---|---|
| Pause | Integration.pause stops every call through Meta at once and keeps the token; Integration.resume picks up from the same cursor. |
| Reconnect | Integration.reconnect returns a fresh connectUrl that lasts one hour, and keeps the Integration's id and cursor, so nothing imports twice. |
| Disconnect | Integration.revoke revokes the token with Meta; every record it brought in stays in your records. |
What your agents do
| Ask | Verb | Runs through | Price |
|---|---|---|---|
| Post the rent-reminder template link to my page on Thursday at 9:00. | Post.schedule | Your account | Free |
| Post this update to my page now. | Post.publish | Your account | Free |
| Answer each comment and Messenger message as the page. | Conversation.answer | Your account | Free |
| Qualify each lead-form entry as it arrives and open a deal for the ones that fit. | Lead.qualify | Your account | Free |
| Show me my page’s reach and each post’s reach this month. | Metric.query | Your account | Free |
Calls on your own account are free.
What it holds
| Noun | The account’s object | When | Which side leads |
|---|---|---|---|
| Post | post | Your agent publishes or schedules | Your records |
| Message | comment or message | Someone comments or writes to the page | The account |
| Lead | leadgen entry | Someone submits a lead form | The account |
| Review | rating | Someone recommends the page or not | The account |
Events and webhooks
| Direction | Event |
|---|---|
| Emits | Post.published, Post.scheduled, Message.created, Lead.created, Lead.qualified |
Hears feed | Becomes Message.created |
Hears messages | Becomes Message.created |
Hears leadgen | Becomes Lead.created |
Any Event can wake a Workflow, and a Watch delivers it to your endpoint, signed (Events and webhooks).
Limits
| What | Limit | Call |
|---|---|---|
| Messenger replies | Go out within 24 hours of the person’s last message; after that the answer waits until they write again | Conversation.answer |
| Lead-form entries | Arrive by webhook within seconds; the agent qualifies each and drafts the first reply within 5 minutes | Lead.qualify |
| Your role on the page | Posting needs a role that can post; a role removed in Meta’s settings ends the connection with needs-reauth | Every call |
Field map
| Our field | Facebook’s field | Notes | Calls |
|---|---|---|---|
Post.body | message | None. | Post.publish, Post.schedule |
Post.link | link | None. | Post.publish, Post.schedule |
Post.publishAt | scheduled_publish_time | Sent with published false | Post.schedule |
Lead.interest | leadgen.field_data | Each form question and answer, as you wrote the form | Lead.qualify |
What try does here
Returns the post as your page will show it, with the time it goes live; nothing is posted or scheduled.
How long a connection lasts
A connection lasts until you remove the app or give up your role on the page: a page token made from Meta’s long-lived sign-in has no expiration date.
The platform asks you to reconnect 7 days before it runs out; until you do, a call that needs it refuses with needs-reauth.
Formats
| Site | Format | Size | Limits |
|---|---|---|---|
| Feed image ad | 1440 × 1800, 4:5 | Primary text 50 to 150 characters; headline 27; up to 30 megabytes |
Plays and strategies
| Kind | Where |
|---|---|
| Plays | Paid social, Retargeting, Video ladder, Instant response, Organic social |
| Strategies | Paid |
Used by
No Workflow, agent task or Service acts through it yet: your agents call it directly.
Reference
5 calls, each with its path and price
| Call | Path | Price |
|---|---|---|
Post.schedule | POST / | Free |
Post.publish | POST / | Free |
Conversation.answer | POST / | Free |
Lead.qualify | POST / | Free |
Metric.query | POST / | Free |