Automate Short Links with Zapier, Make & Pipedream

~10–15 min

You can create/update short links automatically whenever a form is submitted, a spreadsheet row is added, or an event happens in your app—no servers required. Below are lightweight patterns for Zapier, Make, and Pipedream. Replace the endpoint and fields with your ogli.sh details.

Zapier: Google Sheets → Webhooks by Zapier (POST)

  1. Trigger: Google Sheets → New Spreadsheet Row (map columns like url, title, description, image, alias).
  2. Action: Webhooks by Zapier → POST
    • URL: https://api.ogli.sh/v1/links
    • Headers: Authorization: Bearer {{OGLI_API_KEY}}, Content-Type: application/json
    • Data (JSON):
    {
      "url": "{{123456789__URL}}",
      "alias": "{{123456789__ALIAS}}",
      "og": {
        "title": "{{123456789__TITLE}}",
        "description": "{{123456789__DESCRIPTION}}",
        "image": "{{123456789__IMAGE}}"
      },
      "qr": { "enabled": true }
    }
  3. Test: Send a row, inspect the response. Parse url.
  4. Optional Action: Update Spreadsheet Row → write url back to the sheet.

Make.com (Integromat): Custom Webhook → HTTP

  1. Trigger: Webhooks module → Custom webhook. Copy the URL and send test JSON from your form/app.
  2. Action: HTTP module → Make a request
    • Method: POST
    • URL: https://api.ogli.sh/link
    • Headers: Authorization: Bearer {{OGLI_API_KEY}}, Content-Type: application/json
    • Body type: Raw → JSON
    • Map fields from the webhook to targetUrl, title, description, ogImage, and ogImageAlt
  3. Then: Add a Google Sheets “Add a Row” or an Email/SMS module with the new shortUrl.

Pipedream: HTTP Trigger → Node.js step

  1. Create a new workflow with HTTP / Webhook trigger. Copy the endpoint URL.
  2. Add a Node.js step:
    import fetch from "node-fetch";
    export default async (event, steps) => {
      const { url, alias, title, description, image } = event.body;
      const res = await fetch("https://api.ogli.sh/link", {
        method: "POST",
        headers: {
          "Authorization": `Bearer ${process.env.OGLI_API_KEY}`,
          "Content-Type": "application/json"
        },
        body: JSON.stringify({
          url,
          alias,
          og: { title, description, image },
          qr: { enabled: true }
        })
      });
      const data = await res.json();
      return { url: data.url, linkId: data.id, status: res.status };
    };
  3. Connect a next step (e.g., write back to Sheets or send a Slack message).

Security & reliability

Troubleshooting


← Back to all how-tos