{
  "name": "AI Social Autoposter — Sheets to LinkedIn & X via Buffer",
  "flow": [
    {
      "id": 1,
      "module": "google-sheets:watchRows",
      "version": 2,
      "parameters": {
        "__IMTCONN__": "YOUR_GOOGLE_SHEETS_CONNECTION",
        "mode": "select",
        "spreadsheetId": "YOUR_SPREADSHEET_ID",
        "sheetId": "Content Queue",
        "includesHeaders": true,
        "tableFirstRow": "A1:Z1",
        "limit": 5
      },
      "mapper": {},
      "metadata": {
        "designer": {
          "x": 0,
          "y": 0,
          "name": "Watch content queue rows"
        },
        "restore": {
          "parameters": {
            "__IMTCONN__": {
              "label": "My Google connection"
            }
          }
        },
        "parameters": [
          {
            "name": "__IMTCONN__",
            "type": "account:google",
            "label": "Connection",
            "required": true
          }
        ],
        "interface": [
          {
            "name": "0",
            "type": "text",
            "label": "Topic (A)"
          },
          {
            "name": "1",
            "type": "text",
            "label": "Key points (B)"
          },
          {
            "name": "2",
            "type": "text",
            "label": "Link (C)"
          },
          {
            "name": "3",
            "type": "text",
            "label": "Platform (D)"
          },
          {
            "name": "4",
            "type": "text",
            "label": "Status (E)"
          },
          {
            "name": "__ROW_NUMBER__",
            "type": "number",
            "label": "Row number"
          }
        ]
      }
    },
    {
      "id": 2,
      "module": "builtin:BasicRouter",
      "version": 1,
      "parameters": {},
      "mapper": null,
      "metadata": {
        "designer": {
          "x": 300,
          "y": 0
        }
      },
      "routes": [
        {
          "flow": [
            {
              "id": 3,
              "module": "openai-gpt-3:CreateCompletion",
              "version": 1,
              "parameters": {
                "__IMTCONN__": "YOUR_OPENAI_CONNECTION"
              },
              "filter": {
                "name": "LinkedIn route",
                "conditions": [
                  [
                    {
                      "a": "{{1.3}}",
                      "b": "linkedin",
                      "o": "text:equal:ci"
                    }
                  ]
                ]
              },
              "mapper": {
                "select": "chat",
                "model": "gpt-4o-mini",
                "max_tokens": "600",
                "temperature": "0.6",
                "n_completions": "1",
                "messages": [
                  {
                    "role": "system",
                    "content": "You write LinkedIn posts for a B2B automation consultancy.\n\nRules:\n- 120-200 words, professional but conversational, first person.\n- Open with a hook line (no 'I'm excited to share'). One idea per post.\n- Short paragraphs and line breaks for readability. 3-5 relevant hashtags at the end.\n- If a link is provided, reference it naturally at the end ('Full breakdown here:').\n- Output ONLY the post text, no quotes, no commentary."
                  },
                  {
                    "role": "user",
                    "content": "Topic: {{1.0}}\nKey points: {{1.1}}\nLink: {{1.2}}"
                  }
                ]
              },
              "metadata": {
                "designer": {
                  "x": 600,
                  "y": -150,
                  "name": "Adapt for LinkedIn"
                },
                "restore": {},
                "parameters": [
                  {
                    "name": "__IMTCONN__",
                    "type": "account:openai-gpt-3",
                    "label": "Connection",
                    "required": true
                  }
                ]
              }
            },
            {
              "id": 4,
              "module": "linkedin:CreateShareUpdate",
              "version": 2,
              "parameters": {
                "__IMTCONN__": "YOUR_LINKEDIN_CONNECTION"
              },
              "mapper": {
                "type": "person",
                "text": "{{3.result}}",
                "visibility": "PUBLIC"
              },
              "metadata": {
                "designer": {
                  "x": 900,
                  "y": -150,
                  "name": "Post to LinkedIn"
                },
                "restore": {},
                "parameters": [
                  {
                    "name": "__IMTCONN__",
                    "type": "account:linkedin",
                    "label": "Connection",
                    "required": true
                  }
                ]
              }
            },
            {
              "id": 5,
              "module": "google-sheets:updateRow",
              "version": 2,
              "parameters": {
                "__IMTCONN__": "YOUR_GOOGLE_SHEETS_CONNECTION",
                "mode": "select",
                "spreadsheetId": "YOUR_SPREADSHEET_ID",
                "sheetId": "Content Queue",
                "includesHeaders": true
              },
              "mapper": {
                "rowNumber": "{{1.`__ROW_NUMBER__`}}",
                "values": {
                  "4": "posted-linkedin {{formatDate(now; \"YYYY-MM-DD HH:mm\")}}"
                }
              },
              "metadata": {
                "designer": {
                  "x": 1200,
                  "y": -150,
                  "name": "Mark row posted (LinkedIn)"
                },
                "restore": {},
                "parameters": [
                  {
                    "name": "__IMTCONN__",
                    "type": "account:google",
                    "label": "Connection",
                    "required": true
                  }
                ]
              }
            }
          ]
        },
        {
          "flow": [
            {
              "id": 6,
              "module": "openai-gpt-3:CreateCompletion",
              "version": 1,
              "parameters": {
                "__IMTCONN__": "YOUR_OPENAI_CONNECTION"
              },
              "filter": {
                "name": "X route",
                "conditions": [
                  [
                    {
                      "a": "{{1.3}}",
                      "b": "x",
                      "o": "text:equal:ci"
                    }
                  ]
                ]
              },
              "mapper": {
                "select": "chat",
                "model": "gpt-4o-mini",
                "max_tokens": "200",
                "temperature": "0.7",
                "n_completions": "1",
                "messages": [
                  {
                    "role": "system",
                    "content": "You write posts for X (Twitter) for a B2B automation consultancy.\n\nRules:\n- HARD LIMIT 270 characters including the link.\n- Punchy, specific, no hashtag spam (max 1 hashtag or none).\n- If a link is provided, put it at the end.\n- Output ONLY the post text, no quotes, no commentary."
                  },
                  {
                    "role": "user",
                    "content": "Topic: {{1.0}}\nKey points: {{1.1}}\nLink: {{1.2}}"
                  }
                ]
              },
              "metadata": {
                "designer": {
                  "x": 600,
                  "y": 150,
                  "name": "Adapt for X"
                },
                "restore": {},
                "parameters": [
                  {
                    "name": "__IMTCONN__",
                    "type": "account:openai-gpt-3",
                    "label": "Connection",
                    "required": true
                  }
                ]
              }
            },
            {
              "id": 7,
              "module": "buffer:CreateUpdate",
              "version": 1,
              "parameters": {
                "__IMTCONN__": "YOUR_BUFFER_CONNECTION"
              },
              "mapper": {
                "profile_ids": ["YOUR_BUFFER_X_PROFILE_ID"],
                "text": "{{6.result}}",
                "now": true
              },
              "metadata": {
                "designer": {
                  "x": 900,
                  "y": 150,
                  "name": "Queue on Buffer (X)"
                },
                "restore": {},
                "parameters": [
                  {
                    "name": "__IMTCONN__",
                    "type": "account:buffer",
                    "label": "Connection",
                    "required": true
                  }
                ]
              }
            },
            {
              "id": 8,
              "module": "google-sheets:updateRow",
              "version": 2,
              "parameters": {
                "__IMTCONN__": "YOUR_GOOGLE_SHEETS_CONNECTION",
                "mode": "select",
                "spreadsheetId": "YOUR_SPREADSHEET_ID",
                "sheetId": "Content Queue",
                "includesHeaders": true
              },
              "mapper": {
                "rowNumber": "{{1.`__ROW_NUMBER__`}}",
                "values": {
                  "4": "posted-x {{formatDate(now; \"YYYY-MM-DD HH:mm\")}}"
                }
              },
              "metadata": {
                "designer": {
                  "x": 1200,
                  "y": 150,
                  "name": "Mark row posted (X)"
                },
                "restore": {},
                "parameters": [
                  {
                    "name": "__IMTCONN__",
                    "type": "account:google",
                    "label": "Connection",
                    "required": true
                  }
                ]
              }
            }
          ]
        }
      ]
    }
  ],
  "metadata": {
    "version": 1,
    "scenario": {
      "roundtrips": 1,
      "maxErrors": 3,
      "autoCommit": true,
      "autoCommitTriggerLast": true,
      "sequential": false,
      "confidential": false,
      "dataloss": false,
      "dlq": false,
      "freshVariables": false
    },
    "designer": {
      "orphans": []
    },
    "zone": "eu1.make.com"
  }
}
