內容與發現
一個素材庫,兩條發佈線
一則帖文同時存在於資料夾、對話紀錄和某人腦中,結果不是發兩次,就是沒有人發。一個素材庫可以解決:只審批一次、只儲存一次,再由一條有日期的隊列取出。Instagram 接受發佈呼叫;小紅書公開的是一套商家 API,當中沒有發佈筆記這一項,所以第二條線的終點是一個人,不是一個 API。這個不對稱本身就是設計,不是設計的缺口。
- 觸發
- 兩個
- 執行頻率
- 每日一次
- 工具
- 4 件
- 需要 durable execution
- 不需要
流程
上面那條建立素材庫,下面那條清空隊列。兩個觸發,因為素材準備好是一個時間,帖文應該發出是另一個時間,兩者從來不會重疊。
素材通過審批
Sheets · Airtable
產出各平台所需版本
n8n · Make
寫入素材庫一行
Sheets · Airtable
每朝一次
n8n 排程
取出今日應發
n8n
發往哪個平台?
n8n IF
先建立,再發佈
Instagram Graph API
交回給人處理
Slack · WhatsApp
逐步拆解
- 01
素材通過審批
Sheets · Airtable觸發點是審批,不是上載。放在資料夾的檔案只是草稿;有人簽了名,它才成為可以排期的東西。
- 02
產出各平台所需版本
n8n · Make逐個平台切文案,同時產出 JPEG 版本。發佈介面只收這一種靜態圖格式,所以轉檔要在這一步做完;留到發送當刻才做,它就變成一次失敗的發佈。
- 03
寫入素材庫一行
Sheets · Airtable一份素材一行:可以出哪些平台、排在哪一日、有沒有發出過。這一行就是日曆。另外再開一個日曆,正是同一則帖文被發兩次的原因。
- 04
每朝一次
n8n 排程無論有沒有人在座位都會跑。沒有人清空的隊列,只是一個寫了日期的資料夾。
- 05
取出今日應發
n8n從素材庫讀出日期為今日、而且尚未發出的行。已發出是行上的一個狀態,不是一個假設。
- 06
發往哪個平台?
n8n IF分岔不是偏好問題。兩個平台之中,一個有公開文件的發佈介面,另一個沒有,所以兩條線不可能有相同的終點。
- 07
先建立,再發佈
Instagram Graph API兩次呼叫:先建立媒體容器,再發佈。容器要在發送當刻建立——排期時就建好的容器,等不到隊列走到那一日已經失效。
- 08
交回給人處理
Slack · WhatsApp小紅書那條線的終點是一則訊息,內含文案、圖片和預定時間。自動化做到最後一步之前,已經是大部分工序,而且它誠實地標明自動化在哪裡停止。
平台不容許的事
這條隊列的形狀,由兩條寫明的上限,加上一處文件的空白決定。
「Instagram accounts are limited to 100 API-published posts within a 24-hour moving period.」積壓一次過釋放會撞到這條上限,所以隊列要自己控速,不能一次清空。
Instagram Platform — Content Publishing媒體容器如果 24 小時內未發佈就會失效。所以容器必須在發送當刻建立,而不是在排期時建立——而排期工具最容易引導你犯的,正是這個錯。
Instagram Platform — Content Publishing「Carousels are limited to 10 images, videos, or a mix of the two」,而且「JPEG is the only image format supported」。素材庫要保存一份 JPEG 版本,不能只有設計師的原檔。
Instagram Platform — Content Publishing小紅書開放平台確實公開發佈 API 文件,而那是一套商家 API:訂單、售後、商品、庫存、素材中心、物流、財務。素材中心管理的是商品素材,不是筆記。公開導覽中沒有任何內容發佈類別,所以我們不會聲稱可以用程式在該平台發佈筆記。
小紅書開放平台 — API 文件導覽
什麼情況不值得做
以下三種情況,維護成本會高於重複發佈的代價。
你一星期只發幾則,而且每則都由同一個人當日決定。隊列只是把他腦中已有的東西抄一份出來,而抄出來那一份會先過期。
兩條線根本不共用素材。如果小紅書的筆記全部原生撰寫,Instagram 的帖文全部為 Instagram 而拍,那就沒有素材庫可言,只有兩套流程共用一個名。
沒有人負責審批。隊列會依照行上的時間,把裡面的東西發出去。沒有把關的人,自動化只是令一則錯的帖文變得準時。