Deck engagement that moves the opportunity in Salesforce.
PitchWire logs what your buyer did with the deck as a Task on the contact and the opportunity, and writes it into fields on the opportunity. Your Flows use it to create the rep's next task, so the follow-up waits where the rep already works. Salesforce runs the timers and the follow-up. PitchWire records what the buyer actually read.
- Task on contact + opportunity
- 5 Flow-ready opportunity fields
- 0 Apex or LWC in your org
- Team plan and above
Turn what the buyer read into the rep's next task
Every PitchWire field on the opportunity can be used as a trigger or condition in a record-triggered Flow. So a buyer's reading can start whatever your process already does: a Task for the opportunity owner, an email, a Sales Engagement cadence, or a stage update. PitchWire doesn't run a second sequence engine next to Salesforce's. Your cadences, queues and reports stay where they are.
Play 1 · The deck went unopened
When a rep sends a link, PitchWire records the send time on the matched opportunity and ticks Pitchwire Awaiting View. The first real view unticks it. That gives a Flow everything it needs to start a follow-up timer:
- Setup → Flows → New → Record-Triggered Flow on Opportunity, triggered when a record is created or updated.
- Entry condition: Pitchwire_Awaiting_View__c equals True. Run it only when a record is updated to meet the condition.
- Scheduled path: 3 days after Pitchwire_Last_Sent_At__c, or your own number.
- On the path: create a Task for the opportunity owner: "Follow up: deck not opened". For an email, use a Send Email action, or add the contact to a Sales Engagement cadence.
When the buyer opens the deck, the box unticks, the record no longer meets the entry condition, and Salesforce drops the pending path. No task is created.
- Pitchwire Last Sent At Mon 09:12
- Pitchwire Awaiting View ✓
Play 2 · The buyer came back
Every qualified view updates Last Engagement At, Slides Viewed and Dwell Seconds on the opportunity. Trigger a Flow when Last Engagement At changes, and create a "call today" Task. Or check dwell against a threshold you choose, and move the stage or notify the manager. A qualified view is the same filtered signal that drives PitchWire's own alerts, so a task means someone actually read the deck (see what counts as a view).
Last Engagement At is a date, so a Flow triggered on it changing fires at most once per opportunity per day.
What lands in Salesforce
A completed Task for each qualified view, linked to the contact and, when one matched, the opportunity, so it appears in both activity timelines. The subject reads PitchWire: Acme renewal proposal viewed. The description lists the deck, the recipient, slides viewed, time spent, whether it was a first open or a return visit, and a link back to the deal in PitchWire. For a pitch page, it reads "read 5 of 7 sections" instead of a slide count.
Five custom fields on the opportunity, which your admin creates before connecting (see below):
| Label | API name | Type | Updated when |
|---|---|---|---|
| Pitchwire Last Engagement At | Pitchwire_Last_Engagement_At__c | Date | Each qualified view |
| Pitchwire Slides Viewed | Pitchwire_Slides_Viewed__c | Number (18, 0) | Each qualified view |
| Pitchwire Dwell Seconds | Pitchwire_Dwell_Seconds__c | Number (18, 0) | Each qualified view |
| Pitchwire Last Sent At | Pitchwire_Last_Sent_At__c | Date/Time | A link is sent |
| Pitchwire Awaiting View | Pitchwire_Awaiting_View__c | Checkbox | Ticked on send, unticked on the first qualified view |
PitchWire creates Tasks and updates these five fields. It changes nothing else.
What counts as a view
Email security scanners open every link in an inbox. If each of those opens were logged as a Task, your Flows would chase robots. So PitchWire writes only qualified sessions:
- A cloud server that opens the link and never turns a slide or plays a video is left out.
- A session that ends almost as soon as it starts is left out.
- The rep's own test views are never written.
- PitchWire claims each session before it writes to Salesforce, so a retry after an outage doesn't log a second Task.
How a link finds its contact and opportunity
When a rep creates a link, PitchWire looks up the recipient's email among your contacts. If exactly one contact matches, the link is attached to it. If that contact is on exactly one opportunity through Opportunity Contact Roles, the link is attached to that opportunity too. If there are several candidates, PitchWire doesn't guess: the rep picks the contact or opportunity from a short list, and that choice is kept. If nothing matches, PitchWire writes nothing.
PitchWire never creates contacts, accounts, opportunities or leads. Leads aren't matched at all yet, so a recipient who is only a lead gets no Task.
The PitchWire card on the record
A PitchWire card can sit on the Opportunity and Contact Lightning record pages. It lists the decks sent to that record with a heat reading of Hot, Warm, Cold or Idle. Send a deck lets a rep pick a template, enter the recipient and create a tracked link without leaving Salesforce. The new link is attached to the record it was sent from, so it starts the follow-up timer in Play 1.
The card is a Canvas app: no Apex and no Lightning Web Components are installed in your org. Salesforce signs every request the card makes, and PitchWire checks that signature before it returns anything.
Before you connect: create the fields
PitchWire doesn't install a package, so your admin creates the five fields once, in Object Manager → Opportunity → Fields & Relationships:
- Use the labels in the table above exactly as written, with a lowercase w in "Pitchwire". Salesforce derives the API name from the label, and PitchWire writes to those API names.
- Leave Required unticked, and create Pitchwire Awaiting View as a checkbox that starts unticked.
- Make each field visible and editable for the user who connects PitchWire.
If only the first three fields exist, Tasks and engagement fields still work. Play 1 needs the last two.
Connecting your org
- Create the five fields above.
- A PitchWire workspace owner opens Settings → Integrations, clicks Connect Salesforce, and signs in to your org.
- Build the Flows above.
The Salesforce user who signs in needs:
- API Enabled. Most full licenses have it. Some limited licenses don't.
- Read and Edit on Opportunity.
- Read on Contact and Opportunity Contact Role.
- Create on Task.
Each workspace connects one CRM org. PitchWire isn't listed on AppExchange yet, so you connect from inside PitchWire.
Permissions it asks for
PitchWire asks for two OAuth scopes and nothing more: api, to query contacts and opportunities, log Tasks and update the five fields, and refresh_token, to stay connected without the user signing in again. It asks for no full or web access. Salesforce runs every call as the user who connected, so PitchWire can never see or change more than that user's profile and permission sets allow.
Your data, and disconnecting
Salesforce receives engagement only: the deck's name, the recipient's name, slide counts, time spent and timestamps. It never receives the deck's content. Your Salesforce credentials are encrypted at rest with AES-256-GCM, under a key that exists only in our hosting environment, and they are never sent to your browser.
An owner can disconnect at any time from Settings → Integrations. PitchWire asks Salesforce to revoke access and deletes the stored credentials. The Tasks and field values already in your org are your data, and they stay there. More on how we handle data is on the Security page.
Plans and beta status
Salesforce write-back is included on Team and Enterprise. See pricing. The integration is in beta. What that means today:
- Matching needs the recipient's email on the link, and it matches contacts, not leads.
- The follow-up fields live on the opportunity. A link that matches a contact with no single opportunity gets a Task but can't start the Play 1 timer.
- Links created from Claude or ChatGPT aren't matched to Salesforce records yet, so they don't start the Play 1 timer.
Running Salesforce at a scale or in a shape we haven't covered here? Email info@getpitchwire.com. We reply within a business day.
Put deck engagement to work in your Salesforce Flows.
Start free, then connect Salesforce on Team. Your first live link takes about ten minutes.