Update to Beste
Snapshot Oct 26, 2026 · 00:04 UTC · version 0.1.3
Collection source: downloaded plugin package.
Instructions updated for funnel
Skill instructions — Now says: Meta, PostHog and DataFast the site Pick the **sink** by what the site has connected. GA4, PostHog and DataFast measure; the Meta pixel is for advertising...
Observed in instructions or declared skills. Runtime behavior has not been tested.
Up to 3 plugins free · no card required.
All fields and original values.
Skill instructions
Oct 7, 2026 · 00:28 UTC
Meta and PostHog the site Pick the **sink** by what the site has connected. GA4 measures; the Meta pixel is for advertising and belongs on the last step or two, where an ad can be optimised against it. Do not put every event on every sin...
Oct 26, 2026 · 00:04 UTC
Meta, PostHog and DataFast the site Pick the **sink** by what the site has connected. GA4, PostHog and DataFast measure; the Meta pixel is for advertising and belongs on the last step or two, where an ad can be optimised against it. Do n...
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
--- before +++ after @@ -21,7 +21,7 @@ ### Look before you ask -1. get_analytics_setup. This tells you which of GA4, Meta and PostHog the site +1. get_analytics_setup. This tells you which of GA4, Meta, PostHog and DataFast the site actually has, and the event names GA4 recognises. **If nothing is connected, stop here**: say so in one line, tell them where to add a measurement id in the builder, and offer to carry on the moment it is there. Writing events @@ -69,9 +69,9 @@ not measuring. If the site really needs a name of its own, say so and ask before turning on allowCustomNames. -Pick the **sink** by what the site has connected. GA4 measures; the Meta pixel -is for advertising and belongs on the last step or two, where an ad can be -optimised against it. Do not put every event on every sink: three copies of one +Pick the **sink** by what the site has connected. GA4, PostHog and DataFast +measure; the Meta pixel is for advertising and belongs on the last step or two, +where an ad can be optimised against it. Do not put every event on every sink: three copies of one click is three times the noise and, for Meta, three times the ad signal spent on nothing. @@ -84,6 +84,13 @@ One call, all the links. It writes each section once, so a funnel across fifteen links is one batch and one thing to undo. +The list you pass replaces what the link fired, on every sink. If list_links +shows a link already firing a Meta `Lead`, pass it again next to the GA4 event +or it is gone. Each language holds its own copy of every link, so on a site in +several languages do the same for each one: list_links with that language, then +set_link_events with it. A link left behind in another language comes back +under otherLanguages. + **Do not track everything.** A link to the privacy policy is not a funnel step. Social icons in the footer are not a funnel step. Every event you add is a row someone has to read past to find the one that matters, so leave the rest alone.
Full technical diff · 1 changed fields
changed /skill_md_contents
"---\nname: funnel\ndescription: \"Put GA4 or Meta pixel conversion tracking on the links of a Beste site as a funnel of three to five steps. Use when the person wants to measure bookings, leads or sales on their Beste site.\"\n---\n\nPut conversion tracking on an existing Beste site.\n\nA funnel is not a feature to switch on. It is a decision about what counts as\nprogress on this site, and then the same decision written onto every link that\ncarries it. Your job is the decision first, the writing second.\n\n### Your first message\n\nTwo lines. Something like:\n\n **Let's measure what matters on your site.**\n\n I'll look at your pages first, then ask you one thing.\n\nThen look. No plan, no list of what you are about to do.\n\n### Look before you ask\n\n1. get_analytics_setup. This tells you which of GA4, Meta and PostHog the site\n actually has, and the event names GA4 recognises. **If nothing is connected,\n stop here**: say so in one line, tell them where to add a measurement id in\n the builder, and offer to carry on the moment it is there. Writing events\n into a site with no analytics is writing into nothing.\n2. list_pages, then list_links. Now you know the whole site: what pages exist,\n what every link says, where it goes, and which links already fire something.\n3. Read what is already there. A site with tracking on half its buttons has a\n history, and overwriting it silently is how a report loses its past.\n\n### Ask one question\n\n**Use your question tool**, and ask the only thing you cannot work out\nyourself: what counts as success here. Offer three or four readings of the site\nyou just looked at, in their words, not in GA4's:\n\n - \"Someone gets in touch\" (contact, quote, callback)\n - \"Someone books a slot\" (appointment, table, viewing)\n - \"Someone buys\" (checkout)\n - \"Someone downloads the menu\" (whatever this site actually offers)\n\nLeave room for their own answer. One question, then stop asking.\n\nDo not ask which events to use, or what to name them, or which links to put\nthem on. That is the work, and it is yours.\n\n### Build the funnel\n\nA funnel is three to five steps. Fewer says nothing; more cannot be read.\n\nEach step is one **stage of intent**, not one page. Several links can share a\nstep: every \"Book now\" button on the site is the same step, wherever it sits.\n\nName the funnel once, in snake_case, after the outcome: `lead_capture`,\n`booking`, `purchase`. Number the steps from 1 at the widest.\n\nFor a site whose success is \"someone gets in touch\", that is usually:\n\n 1 select_content the links that start the journey: a service card, a plan\n 2 view_item opening the thing itself: a service page, a plan page\n 3 contact a phone, email or WhatsApp link\n 4 generate_lead the contact form's own button, if the site has one\n\nUse the names get_analytics_setup gives you and nothing else. An invented name\narrives in GA4 as an event with no report built for it, which is the same as\nnot measuring. If the site really needs a name of its own, say so and ask\nbefore turning on allowCustomNames.\n\nPick the **sink** by what the site has connected. GA4 measures; the Meta pixel\nis for advertising and belongs on the last step or two, where an ad can be\noptimised against it. Do not put every event on every sink: three copies of one\nclick is three times the noise and, for Meta, three times the ad signal spent\non nothing.\n\n### Write it\n\nset_link_events, addressing links by the sectionId and path list_links gave\nyou, and pass `funnel: { name, step }` on every event. Both parts matter: the\nname groups the steps into one report, the number orders them.\n\nOne call, all the links. It writes each section once, so a funnel across\nfifteen links is one batch and one thing to undo.\n\n**Do not track everything.** A link to the privacy policy is not a funnel step.\nSocial icons in the footer are not a funnel step. Every event you add is a row\nsomeone has to read past to find the one that matters, so leave the rest alone.\nA shared navbar link is written once and counts on every page; that is correct,\nand worth saying.\n\n### Tell them\n\nShort. The funnel as steps, each with the number of links behind it:\n\n Tracking is on, as a funnel called **lead_capture**:\n\n | | | |\n |---|---|---|\n | 1 | Services and plan cards | 6 links |\n | 2 | Service pages opened | 3 links |\n | 3 | Phone and email | 4 links |\n | 4 | Contact form | 1 link |\n\n It is in the draft. Say the word and I'll put it live, and it starts\n counting from then.\n\nThen the one caveat that is true and easy to miss: nothing is measured until\nthe site is published, and if the site shows a cookie banner, visitors who\nrefuse are not counted. Say it in a line, not a paragraph.\n\nNever publish on your own. This site is already live and this change is\ntheirs to make.\n""---\nname: funnel\ndescription: \"Put GA4 or Meta pixel conversion tracking on the links of a Beste site as a funnel of three to five steps. Use when the person wants to measure bookings, leads or sales on their Beste site.\"\n---\n\nPut conversion tracking on an existing Beste site.\n\nA funnel is not a feature to switch on. It is a decision about what counts as\nprogress on this site, and then the same decision written onto every link that\ncarries it. Your job is the decision first, the writing second.\n\n### Your first message\n\nTwo lines. Something like:\n\n **Let's measure what matters on your site.**\n\n I'll look at your pages first, then ask you one thing.\n\nThen look. No plan, no list of what you are about to do.\n\n### Look before you ask\n\n1. get_analytics_setup. This tells you which of GA4, Meta, PostHog and DataFast the site\n actually has, and the event names GA4 recognises. **If nothing is connected,\n stop here**: say so in one line, tell them where to add a measurement id in\n the builder, and offer to carry on the moment it is there. Writing events\n into a site with no analytics is writing into nothing.\n2. list_pages, then list_links. Now you know the whole site: what pages exist,\n what every link says, where it goes, and which links already fire something.\n3. Read what is already there. A site with tracking on half its buttons has a\n history, and overwriting it silently is how a report loses its past.\n\n### Ask one question\n\n**Use your question tool**, and ask the only thing you cannot work out\nyourself: what counts as success here. Offer three or four readings of the site\nyou just looked at, in their words, not in GA4's:\n\n - \"Someone gets in touch\" (contact, quote, callback)\n - \"Someone books a slot\" (appointment, table, viewing)\n - \"Someone buys\" (checkout)\n - \"Someone downloads the menu\" (whatever this site actually offers)\n\nLeave room for their own answer. One question, then stop asking.\n\nDo not ask which events to use, or what to name them, or which links to put\nthem on. That is the work, and it is yours.\n\n### Build the funnel\n\nA funnel is three to five steps. Fewer says nothing; more cannot be read.\n\nEach step is one **stage of intent**, not one page. Several links can share a\nstep: every \"Book now\" button on the site is the same step, wherever it sits.\n\nName the funnel once, in snake_case, after the outcome: `lead_capture`,\n`booking`, `purchase`. Number the steps from 1 at the widest.\n\nFor a site whose success is \"someone gets in touch\", that is usually:\n\n 1 select_content the links that start the journey: a service card, a plan\n 2 view_item opening the thing itself: a service page, a plan page\n 3 contact a phone, email or WhatsApp link\n 4 generate_lead the contact form's own button, if the site has one\n\nUse the names get_analytics_setup gives you and nothing else. An invented name\narrives in GA4 as an event with no report built for it, which is the same as\nnot measuring. If the site really needs a name of its own, say so and ask\nbefore turning on allowCustomNames.\n\nPick the **sink** by what the site has connected. GA4, PostHog and DataFast\nmeasure; the Meta pixel is for advertising and belongs on the last step or two,\nwhere an ad can be optimised against it. Do not put every event on every sink: three copies of one\nclick is three times the noise and, for Meta, three times the ad signal spent\non nothing.\n\n### Write it\n\nset_link_events, addressing links by the sectionId and path list_links gave\nyou, and pass `funnel: { name, step }` on every event. Both parts matter: the\nname groups the steps into one report, the number orders them.\n\nOne call, all the links. It writes each section once, so a funnel across\nfifteen links is one batch and one thing to undo.\n\nThe list you pass replaces what the link fired, on every sink. If list_links\nshows a link already firing a Meta `Lead`, pass it again next to the GA4 event\nor it is gone. Each language holds its own copy of every link, so on a site in\nseveral languages do the same for each one: list_links with that language, then\nset_link_events with it. A link left behind in another language comes back\nunder otherLanguages.\n\n**Do not track everything.** A link to the privacy policy is not a funnel step.\nSocial icons in the footer are not a funnel step. Every event you add is a row\nsomeone has to read past to find the one that matters, so leave the rest alone.\nA shared navbar link is written once and counts on every page; that is correct,\nand worth saying.\n\n### Tell them\n\nShort. The funnel as steps, each with the number of links behind it:\n\n Tracking is on, as a funnel called **lead_capture**:\n\n | | | |\n |---|---|---|\n | 1 | Services and plan cards | 6 links |\n | 2 | Service pages opened | 3 links |\n | 3 | Phone and email | 4 links |\n | 4 | Contact form | 1 link |\n\n It is in the draft. Say the word and I'll put it live, and it starts\n counting from then.\n\nThen the one caveat that is true and easy to miss: nothing is measured until\nthe site is published, and if the site shows a cookie banner, visitors who\nrefuse are not counted. Say it in a line, not a paragraph.\n\nNever publish on your own. This site is already live and this change is\ntheirs to make.\n"Full snapshot data
{
"description": "Put GA4 or Meta pixel conversion tracking on the links of a Beste site as a funnel of three to five steps. Use when the person wants to measure bookings, leads or sales on their Beste site.",
"included_files": [],
"name": "funnel",
"skill_md_contents": "---\nname: funnel\ndescription: \"Put GA4 or Meta pixel conversion tracking on the links of a Beste site as a funnel of three to five steps. Use when the person wants to measure bookings, leads or sales on their Beste site.\"\n---\n\nPut conversion tracking on an existing Beste site.\n\nA funnel is not a feature to switch on. It is a decision about what counts as\nprogress on this site, and then the same decision written onto every link that\ncarries it. Your job is the decision first, the writing second.\n\n### Your first message\n\nTwo lines. Something like:\n\n **Let's measure what matters on your site.**\n\n I'll look at your pages first, then ask you one thing.\n\nThen look. No plan, no list of what you are about to do.\n\n### Look before you ask\n\n1. get_analytics_setup. This tells you which of GA4, Meta, PostHog and DataFast the site\n actually has, and the event names GA4 recognises. **If nothing is connected,\n stop here**: say so in one line, tell them where to add a measurement id in\n the builder, and offer to carry on the moment it is there. Writing events\n into a site with no analytics is writing into nothing.\n2. list_pages, then list_links. Now you know the whole site: what pages exist,\n what every link says, where it goes, and which links already fire something.\n3. Read what is already there. A site with tracking on half its buttons has a\n history, and overwriting it silently is how a report loses its past.\n\n### Ask one question\n\n**Use your question tool**, and ask the only thing you cannot work out\nyourself: what counts as success here. Offer three or four readings of the site\nyou just looked at, in their words, not in GA4's:\n\n - \"Someone gets in touch\" (contact, quote, callback)\n - \"Someone books a slot\" (appointment, table, viewing)\n - \"Someone buys\" (checkout)\n - \"Someone downloads the menu\" (whatever this site actually offers)\n\nLeave room for their own answer. One question, then stop asking.\n\nDo not ask which events to use, or what to name them, or which links to put\nthem on. That is the work, and it is yours.\n\n### Build the funnel\n\nA funnel is three to five steps. Fewer says nothing; more cannot be read.\n\nEach step is one **stage of intent**, not one page. Several links can share a\nstep: every \"Book now\" button on the site is the same step, wherever it sits.\n\nName the funnel once, in snake_case, after the outcome: `lead_capture`,\n`booking`, `purchase`. Number the steps from 1 at the widest.\n\nFor a site whose success is \"someone gets in touch\", that is usually:\n\n 1 select_content the links that start the journey: a service card, a plan\n 2 view_item opening the thing itself: a service page, a plan page\n 3 contact a phone, email or WhatsApp link\n 4 generate_lead the contact form's own button, if the site has one\n\nUse the names get_analytics_setup gives you and nothing else. An invented name\narrives in GA4 as an event with no report built for it, which is the same as\nnot measuring. If the site really needs a name of its own, say so and ask\nbefore turning on allowCustomNames.\n\nPick the **sink** by what the site has connected. GA4, PostHog and DataFast\nmeasure; the Meta pixel is for advertising and belongs on the last step or two,\nwhere an ad can be optimised against it. Do not put every event on every sink: three copies of one\nclick is three times the noise and, for Meta, three times the ad signal spent\non nothing.\n\n### Write it\n\nset_link_events, addressing links by the sectionId and path list_links gave\nyou, and pass `funnel: { name, step }` on every event. Both parts matter: the\nname groups the steps into one report, the number orders them.\n\nOne call, all the links. It writes each section once, so a funnel across\nfifteen links is one batch and one thing to undo.\n\nThe list you pass replaces what the link fired, on every sink. If list_links\nshows a link already firing a Meta `Lead`, pass it again next to the GA4 event\nor it is gone. Each language holds its own copy of every link, so on a site in\nseveral languages do the same for each one: list_links with that language, then\nset_link_events with it. A link left behind in another language comes back\nunder otherLanguages.\n\n**Do not track everything.** A link to the privacy policy is not a funnel step.\nSocial icons in the footer are not a funnel step. Every event you add is a row\nsomeone has to read past to find the one that matters, so leave the rest alone.\nA shared navbar link is written once and counts on every page; that is correct,\nand worth saying.\n\n### Tell them\n\nShort. The funnel as steps, each with the number of links behind it:\n\n Tracking is on, as a funnel called **lead_capture**:\n\n | | | |\n |---|---|---|\n | 1 | Services and plan cards | 6 links |\n | 2 | Service pages opened | 3 links |\n | 3 | Phone and email | 4 links |\n | 4 | Contact form | 1 link |\n\n It is in the draft. Say the word and I'll put it live, and it starts\n counting from then.\n\nThen the one caveat that is true and easy to miss: nothing is measured until\nthe site is published, and if the site shows a cookie banner, visitors who\nrefuse are not counted. Say it in a line, not a paragraph.\n\nNever publish on your own. This site is already live and this change is\ntheirs to make.\n"
}SHA-256 of public snapshot: 24babdd1e131c924ac88db3b3e6a5877c903336e0bc508e714db443e9cae7aba