Library

Logged for the team. Not a personal pipeline.

Anyone on this engine can pick up the funnel, the campaigns, and the grain from here. Brief and backlog are logged. Stamp a new version when the model changes.

Architecture

Campaign-level was a bucket. Field-level is the signal.

We are migrating attribution onto the fields on the sauce. A human verifies, or the data is entered. We only keep a signal if we can proactively prompt on it. Agents read the rest. They do not force.

From

Campaign

One UTM. One bucket. Revenue with no field.

To

Fields on the sauce
  • post
  • source
  • utm.c
  • utm.s
  • company · ask
  • intent · ask
  • stage · ask
  • choice · ask
  • moment · ask
  • amount
  • invoice · ask

Signal attribution

Verified, or entered

Company, intent, stage, choice, moment, invoice. Association prompts. Two choices. Never a blast.

Metadata

Agents reason. They do not force.

Objective reasoning agents read the fields. Source, campaign, UTMs, the rest of the sauce. Analysis, not a blast.

Acquisition

Writes origin

The first sauce. Post, source, intent, first invoice.

Renewal

Writes a new grain

Copied from the asset. The difference is the upsell. Origin still looks back.

  1. TOFU sauce

    Fields live here

    Any source. One object.

  2. Mo fo

    Related lists

    Lead · Contact · Account · Opty · Order · Product

  3. BOFU

    Looks back

    Square · invoice · origination still on sauce

Skills

Live funnel

Jetfly

  1. Pipeline
    20% influence · opportunity · origin
  2. Best case
    30% influence · opportunity
  3. Commit
    30% influence · opportunity
  4. Won
    20% influence · opportunity · converts
Q3 pipeline
li_2041 · q3-pipeline
Lead page
Field workshop
ig_8812 · field-workshop
Lead page
Field notes
x_3304 · field-notes
Lead page

Log

UX / revenue engine — brief and backlog

8 October 2026 · team

JETFLY.AI — UX / REVENUE ENGINE BRIEF AND BACKLOG

Logged: 22 September 2026
Updated: 8 October 2026. Controller. Same sky.
Status: team asset. Cooked enough for a handoff.

WHAT
Not a CRM. The tower inside the one they already have.
Sprout stamps the post. Lead HTML keeps the grain. Salesforce receives the opty.
Grok is the controller. Salesforce is the pilot.

PIPES
Two. Only two. Sprout. Salesforce.
Periphery feeds Salesforce: grain, stages, association, sauce, HTML, HubSpot, email, SMS, Marketing Cloud, Pardot, agents.
They can call. They are not a pipe.

GRAIN
~200 bytes. Post, UTMs, campaign, company, role, intent, stage, revenue.
Name and email go to the CRM then drop. HTML field still named iota.

FIELD-LEVEL
Campaign was a bucket. Every field on the sauce is a signal.
Signal: verified by a human, or data entered.
Metadata: agents reason. They do not force.
Engage on: company, intent, stage, choice, moment, invoice.
UTM is metadata. We do not engage about a UTM.
Acquisition writes origin. Renewal writes a new grain.

OBJECTS
TOFU sauce — Jetfly_Sauce__c. Origination.
Mo fo — related lists on Lead, Contact, Account, Opportunity, Order, Product.
BOFU — invoice looks back to sauce.
Account is the top. A deal is Opportunity. Lead sits outside until convert.

FUNNEL
Lead Status and Opportunity StageName in one funnel. Attribution across both.
Custom unless they are still Salesforce OOTB.
Forecast categories are not StageName.

QUALIFY
1 Funnel  2 Campaign  3 Weight  4 Plumb (any object, then source field)

ASSOCIATION
Journey marks on stages. Two choices. Never a blast.

CONTROLLER
Four calls. Proceed. Hold. Conflict. The renewal difference is the upsell.
The radio is the open record. The controller does not write it.
Flight plan: Lead, Account, Opportunity, Quote, Order, Asset, Invoice, renewal quote.
The renewal quote is copied from the asset. The difference is the upsell. Not a new lead.
The only hold is a phone signature. Discount, credit, recognition.
In policy, nobody is asked. Any other wait is a defect.

TRIAL
Sign up / log in. Connect Salesforce Developer Edition.
Prospect HTML is the lead page. Hidden fields.

PACKAGE
External Client App, 2GP. Thin Jetfly_* on Opportunity. Not a Lightning App.

BACKLOG NOW
Hand test. Ten live opportunities. Same org. Script only.
Score time to invoice, and every wait that was not a signature.
Do not put the radio on the record until those ten pass.

BACKLOG NEXT
Salesforce Connected App OAuth. Real write to sobject.sourceField.
2GP package with sauce + related lists. Sprout production webhook.
Jetflyify names. Import org StageName + Lead Status. Closed Lost as a branch.
Renewal grain from the asset. Live Association callers.

NOT DOING
Another CRM. Another sky. A warehouse. A quote document. A stage the controller owns.
Campaign-level as the model. Forcing a prompt. The controller updating a field.
Tracking fields we cannot engage on. Forecast categories as stages.
The deal living on the tracker.

PICK UP
Ten deals with the script. Then Library → Qualify → Plumb → Trial → Sprout → lead HTML → CRM plugin → Association.
Log a new version when the model changes.

TOFU sauce · Mo fo · BOFU

8 October 2026 · team

JETFLY.AI — OBJECTS: TOFU SAUCE · MO FO · BOFU

Status: logged. Team asset.
Dev names stay as they are. We jetflyify them later.

ASSOCIATION
Feeds campaign metadata onto the sauce.
Sprout, every social channel, Marketing Cloud — same fields.
The source is not the point. The sauce is.

1. TOFU SAUCE — Jetfly_Sauce__c
One object. Any source can write it.
This is the origination source/sauce.
Revenue always looks back here. Critical: know where the money came from.

2. MO FO — the Salesforce layer
Not a bridge. Related lists.
Lightning related lists on Lead, Contact, Account, Opportunity, Order, Product.
Each list shows the sauce. That is the core SFDC layer.
Marketing Cloud objects can sit here too. We do not need a second pipe.

3. BOFU — finance
Square. Invoices.
Open an invoice. Related list back to TOFU sauce.
At any object, you can see origination.

RULE
Sauce is the OG. Mo fo hangs it on the opty layer. BOFU looks back.

Association — opty stage skill

8 October 2026 · team

JETFLY.AI — SKILL: ASSOCIATION

Status: logged. Team asset.

WHAT
Attribution to opportunity stages.
This is mapping the customer journey.
Insights contribute to a stage. They are not 1:1 revenue points.

ORIGIN
Always the post.

OPTY
The stage that grain is aligned to — amount, forecast, influence.

ASSOCIATION
The join. Which journey marks sit on which opty stage.
Trends across accounts, intents, and posts — so we do better business, not just count closed won.

CALLERS
Email, SMS, Marketing Cloud, Pardot, an agent.
Same contract. They prompt. They do not force.
Two choices. The customer picks.

RULE
Prompt in their best interest. Give them the choice.

UX / revenue engine — brief and backlog

8 October 2026 · team

JETFLY.AI — UX / REVENUE ENGINE BRIEF AND BACKLOG

Logged: 22 September 2026
Updated: 8 October 2026. Controller. Same sky.
Status: team asset. Cooked enough for a handoff.

WHAT
Not a CRM. The tower inside the one they already have.
Sprout stamps the post. Lead HTML keeps the grain. Salesforce receives the opty.
Grok is the controller. Salesforce is the pilot.

PIPES
Two. Only two. Sprout. Salesforce.
Periphery feeds Salesforce: grain, stages, association, sauce, HTML, HubSpot, email, SMS, Marketing Cloud, Pardot, agents.
They can call. They are not a pipe.

GRAIN
~200 bytes. Post, UTMs, campaign, company, role, intent, stage, revenue.
Name and email go to the CRM then drop. HTML field still named iota.

FIELD-LEVEL
Campaign was a bucket. Every field on the sauce is a signal.
Signal: verified by a human, or data entered.
Metadata: agents reason. They do not force.
Engage on: company, intent, stage, choice, moment, invoice.
UTM is metadata. We do not engage about a UTM.
Acquisition writes origin. Renewal writes a new grain.

OBJECTS
TOFU sauce — Jetfly_Sauce__c. Origination.
Mo fo — related lists on Lead, Contact, Account, Opportunity, Order, Product.
BOFU — invoice looks back to sauce.
Account is the top. A deal is Opportunity. Lead sits outside until convert.

FUNNEL
Lead Status and Opportunity StageName in one funnel. Attribution across both.
Custom unless they are still Salesforce OOTB.
Forecast categories are not StageName.

QUALIFY
1 Funnel  2 Campaign  3 Weight  4 Plumb (any object, then source field)

ASSOCIATION
Journey marks on stages. Two choices. Never a blast.

CONTROLLER
Four calls. Proceed. Hold. Conflict. The renewal difference is the upsell.
The radio is the open record. The controller does not write it.
Flight plan: Lead, Account, Opportunity, Quote, Order, Asset, Invoice, renewal quote.
The renewal quote is copied from the asset. The difference is the upsell. Not a new lead.
The only hold is a phone signature. Discount, credit, recognition.
In policy, nobody is asked. Any other wait is a defect.

TRIAL
Sign up / log in. Connect Salesforce Developer Edition.
Prospect HTML is the lead page. Hidden fields.

PACKAGE
External Client App, 2GP. Thin Jetfly_* on Opportunity. Not a Lightning App.

BACKLOG NOW
Hand test. Ten live opportunities. Same org. Script only.
Score time to invoice, and every wait that was not a signature.
Do not put the radio on the record until those ten pass.

BACKLOG NEXT
Salesforce Connected App OAuth. Real write to sobject.sourceField.
2GP package with sauce + related lists. Sprout production webhook.
Jetflyify names. Import org StageName + Lead Status. Closed Lost as a branch.
Renewal grain from the asset. Live Association callers.

NOT DOING
Another CRM. Another sky. A warehouse. A quote document. A stage the controller owns.
Campaign-level as the model. Forcing a prompt. The controller updating a field.
Tracking fields we cannot engage on. Forecast categories as stages.
The deal living on the tracker.

PICK UP
Ten deals with the script. Then Library → Qualify → Plumb → Trial → Sprout → lead HTML → CRM plugin → Association.
Log a new version when the model changes.

Association — opty stage skill

8 October 2026 · team

JETFLY.AI — SKILL: ASSOCIATION

Status: logged. Team asset.

WHAT
Attribution to opportunity stages.
This is mapping the customer journey.
Insights contribute to a stage. They are not 1:1 revenue points.

ORIGIN
Always the post.

OPTY
The stage that grain is aligned to — amount, forecast, influence.

ASSOCIATION
The join. Which journey marks sit on which opty stage.
Trends across accounts, intents, and posts — so we do better business, not just count closed won.

CALLERS
Email, SMS, Marketing Cloud, Pardot, an agent.
Same contract. They prompt. They do not force.
Two choices. The customer picks.

RULE
Prompt in their best interest. Give them the choice.