{
  "name": "Save a company timeline from Bounce Watch to Notion",
  "nodes": [
    {
      "parameters": {
        "content": "## Save a company timeline from Bounce Watch to Notion\n\nBounce Watch tells you what just happened at a company and when \u2014 funding, senior hires, new offices, customer wins and partnerships, each carrying its own date. What the API covers: bouncewatch.com/products/data-enrichment-api\n\nAccount research that lives in a chat window is research you will redo. This workflow takes a company name, resolves it to a domain, pulls its dated timeline and files the lot as a page in a Notion database.\n\n### How it works\n\nYou start the run by hand. A Settings node holds the company name you want researched. The Bounce Watch lookup turns that name into ranked candidates, and a second Settings node takes the top one and records how it matched, so a wrong pick is visible rather than silent. The timeline for that domain is then pulled and written into Notion as one page: identity at the top, then every dated event underneath, newest first.\n\n### Setup\n\n1. Get an API key at bouncewatch.com/register/api. It is free, no card, and every new account starts with 2,500 credits. Paste it into the Bounce Watch credential.\n2. Put the company name into Company to research and run the workflow.\n3. Connect your Notion credential, choose the database, and rename the properties on the last node to match your own.\n\nDates marked as recorded are when the change was measured, not when it happened, and the page says so. An empty run means nothing matched the filters, not that those companies were quiet.\n\n### Customization tips\n\nReplace the manual trigger with a form, a webhook or a new row in your CRM and the same page is written every time someone asks for research. Narrow the timeline by category if you only want funding, or only product.",
        "height": 1060,
        "width": 520
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -380,
        -120
      ],
      "id": "sticky-overview",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "## Ask for a company\n\nOne name, typed by hand.\nSwap this for a form or a webhook later.",
        "height": 300,
        "width": 440,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        150,
        -170
      ],
      "id": "sticky-section-1",
      "name": "Section 1"
    },
    {
      "parameters": {
        "content": "## Resolve it to a domain\n\nCandidates come back ranked.\nHow it matched is recorded on the page.",
        "height": 300,
        "width": 440,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        630,
        -170
      ],
      "id": "sticky-section-2",
      "name": "Section 2"
    },
    {
      "parameters": {
        "content": "## File the timeline\n\nOne page per company.\nEvery event carries its own date.",
        "height": 300,
        "width": 440,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        1110,
        -170
      ],
      "id": "sticky-section-3",
      "name": "Section 3"
    },
    {
      "parameters": {},
      "id": "bw0117-0000-4000-8000-000000000117",
      "name": "Run it by hand",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        220,
        0
      ],
      "notes": "Replace with a form, a webhook or a CRM row when you want this on demand."
    },
    {
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "as0118-0000-4000-8000-000000000118",
              "name": "company_name",
              "type": "string",
              "value": "Example Company"
            },
            {
              "id": "as0119-0000-4000-8000-000000000119",
              "name": "lookback_days",
              "type": "number",
              "value": "={{ 180 }}"
            }
          ]
        }
      },
      "id": "bw0120-0000-4000-8000-000000000120",
      "name": "Company to research",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        460,
        0
      ],
      "notes": "The name you want researched, and how far back the timeline should reach."
    },
    {
      "parameters": {
        "resource": "company",
        "operation": "find",
        "name": "={{ $json.company_name }}",
        "filters": {
          "limit": 5
        }
      },
      "id": "bw0121-0000-4000-8000-000000000121",
      "name": "Look up the company",
      "type": "n8n-nodes-bouncewatch.bounceWatch",
      "typeVersion": 1,
      "position": [
        700,
        0
      ],
      "credentials": {
        "bounceWatchApi": {
          "name": "<your credential>"
        }
      },
      "notes": "Returns ranked candidates. Add a country code to the filters if the name is ambiguous."
    },
    {
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "as0122-0000-4000-8000-000000000122",
              "name": "domain",
              "type": "string",
              "value": "={{ $json.candidates?.[0]?.domain || \"\" }}"
            },
            {
              "id": "as0123-0000-4000-8000-000000000123",
              "name": "matched_by",
              "type": "string",
              "value": "={{ $json.candidates?.[0] ? $json.matched_by : \"no candidate\" }}"
            }
          ]
        }
      },
      "id": "bw0124-0000-4000-8000-000000000124",
      "name": "Take the top match",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        940,
        0
      ],
      "notes": "How the match was made travels onto the page, so a wrong pick is visible rather than silent."
    },
    {
      "parameters": {
        "resource": "signal",
        "operation": "getForCompany",
        "domain": "={{ $json.domain }}",
        "splitSignals": false,
        "filters": {
          "days": "={{ $('Company to research').first().json.lookback_days }}",
          "limit": 50
        }
      },
      "id": "bw0125-0000-4000-8000-000000000125",
      "name": "Pull the dated timeline",
      "type": "n8n-nodes-bouncewatch.bounceWatch",
      "typeVersion": 1,
      "position": [
        1180,
        0
      ],
      "credentials": {
        "bounceWatchApi": {
          "name": "<your credential>"
        }
      },
      "notes": "One item per company, with the signals nested, so the page can be built in one pass."
    },
    {
      "parameters": {
        "options": {},
        "resource": "databasePage",
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Name|title",
              "title": "={{ $json.company.name }}"
            },
            {
              "key": "Domain|rich_text",
              "textContent": "={{ $json.company.domain }}"
            },
            {
              "key": "Timeline|rich_text",
              "textContent": "={{ $json.company.country }}{{ $json.company.employees ? \" \u00b7 \" + $json.company.employees + \" people\" : \"\" }}{{ $json.company.funding_stage ? \" \u00b7 \" + $json.company.funding_stage : \"\" }}\n{{ $json.company.profile_url }}\nMatched by: {{ $('Take the top match').item.json.matched_by }}\n\n{{ $json.signals.map(s => \"\u2022 \" + s.label + \" \u2014 \" + s.date + (s.date_is_measurement ? \" (date recorded)\" : \"\") + (s.unconfirmed ? \" (unconfirmed)\" : \"\") + (s.summary ? \"\\n  \" + s.summary : \"\")).join(\"\\n\") }}"
            }
          ]
        }
      },
      "id": "bw0126-0000-4000-8000-000000000126",
      "name": "Save the timeline",
      "type": "n8n-nodes-base.notion",
      "typeVersion": 2.2,
      "position": [
        1420,
        0
      ],
      "notes": "Choose your database and rename these properties to match it."
    }
  ],
  "connections": {
    "Run it by hand": {
      "main": [
        [
          {
            "node": "Company to research",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Company to research": {
      "main": [
        [
          {
            "node": "Look up the company",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Look up the company": {
      "main": [
        [
          {
            "node": "Take the top match",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Take the top match": {
      "main": [
        [
          {
            "node": "Pull the dated timeline",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pull the dated timeline": {
      "main": [
        [
          {
            "node": "Save the timeline",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  }
}