Services Pricing Integrations Company Community Events Cart Sign In Contact
Skip to Content

What Org Launcher Calls

Every request the app makes, and which API version it asks for

If your security team wants to know what this app talks to, this page is the answer.

Org Launcher never asks for a Salesforce password and never stores one. It uses the login the Salesforce CLI already holds on your Mac. When a feature needs to call Salesforce directly, the app asks the CLI for that login. The token it gets back is kept in memory while the app runs, and is never written to disk, never written to a log, and never sent anywhere except the org it came from.

Three features never handle a token at all — Storage and Limits, Setup Audit Trail, and Inspect Changes. They ask the Salesforce CLI to do the work and read back the result.

Which API version

One version is used for everything the app calls directly, and your org chooses it, not the app. It is the version the Salesforce CLI reports for that org. If the CLI does not report one, the app uses 62.0. Paths are built as <your instance>/services/data/v<version>/…

Three things sit outside that rule: paging links come back from Salesforce already formed, so the app follows them exactly as given; retrieving metadata for Inspect Changes is pinned to 62.0; and the Salesforce Trust status service has its own version, v1, which has nothing to do with your org.

Anything run through the Salesforce CLI passes no version at all, so the CLI picks its own. Those rows are marked CLI below.

Opening and managing orgs

What it does Call API version
List the orgs authorized on your Mac sf org list --all --json CLI
Read the login held for an org sf org display --target-org <org> --verbose --json CLI
Read the token when a newer CLI hides it sf org auth show-access-token --target-org <org> --json CLI
Open an org, Setup, or Object Manager sf org open --target-org <org> --url-only --json CLI
Add an org or reconnect one sf org login web CLI
Remove an org from this Mac sf org logout --target-org <org> --no-prompt CLI

Opening an org gets a one-time login link and hands it to your browser. The app makes no request to that link itself.

Storage, limits, and Trust status

What it does Call API version
Read storage and API limits sf org list limits --target-org <org> --json CLI
Check for active incidents GET api.status.salesforce.com/v1/incidents/active v1
Check one instance's status GET api.status.salesforce.com/v1/instances/<instance>/status v1

The Trust requests carry no login, no token and no org id. Only the instance name travels, in the address. They can be switched off in Settings.

Inspect Changes

What it does Call API version
List the metadata types in an org sf org list metadata-types --target-org <org> --json CLI
List components of one type sf org list metadata --metadata-type <Type> --target-org <org> CLI
Retrieve components to compare or extract sf project retrieve start --metadata <Type:Name> 62.0
Open a component in the org sf org open --path /<componentId> --url-only --json CLI

Release Updates

What it does Call API version
Read the release updates in an org GET /tooling/query?q=SELECT … FROM ReleaseUpdate Your org's

The only call in the app that uses the Tooling API — release updates are not in the ordinary data API, so there is no other way to read them. One request per org, and reading changes nothing: the app never activates a release update, because doing that changes how an org behaves. That decision stays in Salesforce Setup.

Email Domains

What it does Call API version
Read the org's authorized email domains GET /tooling/query?q=SELECT … FROM AuthorizedEmailDomain Your org's
Read the org's DKIM keys GET /query?q=SELECT … FROM EmailDomainKey Your org's
Check the DKIM record really is published DNS lookup of <selector>._domainkey.<domain>, following one CNAME off by default
Compare it with the key Salesforce signs with DNS lookup of the address Salesforce hosts the key at off by default
Check SPF DNS lookup of a TXT record on the domain off by default
Check DMARC DNS lookup of a TXT record on _dmarc.<domain> off by default

Salesforce reports whether it considers a domain verified. It cannot report whether the DNS record behind it is still published, so the app can check that itself. Those DNS lookups are switched off until you turn them on — they are the only requests the app makes that go neither to Salesforce nor to this site. They go to whichever DNS resolver your Mac uses, they reveal which domains are being checked, and they read only public records. A lookup that does not answer is reported as “could not check”, never as a fault, because a slow or filtered DNS server would otherwise look identical to a misconfigured client.

Setup Audit Trail

What it does Call API version
Read the audit trail sf data query -q "SELECT Action, Section, CreatedDate, CreatedBy.Name, Display FROM SetupAuditTrail …" CLI

One query, up to 2,000 rows, limited to the last 7, 30 or 90 days. Searching and filtering happen on your Mac.

Query Records

What it does Call API version
Run your query GET /query?q=<your SOQL> Your org's
Get the next page GET <the link Salesforce returned> From Salesforce
List the objects you can query GET /sobjects/ Your org's
Read one object's fields and related lists GET /sobjects/<Object>/describe Your org's
Roughly how many records each object holds GET /limits/recordCount Your org's
See which fields an object actually uses GET /query?q=SELECT FIELDS(ALL) FROM <Object> ORDER BY LastModifiedDate DESC LIMIT 200 Your org's

One round trip per 2,000 records. Copy, CSV export and Excel export all work on data already downloaded.

Choosing an object reads that object's fields and related lists once, then looks at up to 200 of its most recently changed records to see which fields your org fills in. That is one extra read-only query, and only when you pick an object — a query that arrives another way is not sampled unless you ask for it. Nothing is written, and the records are counted in memory and never saved. The record counts are the ones Salesforce reports itself; they are approximate and are used only to decide which objects to show you first.

Data Import

What it does Call API version
List objects GET /sobjects/ Your org's
Read an object's fields GET /sobjects/<Object>/describe Your org's
Insert POST /composite/sobjects Your org's
Update PATCH /composite/sobjects Your org's
Upsert by external id PATCH /composite/sobjects/<Object>/<ExternalIdField> Your org's
Delete DELETE /composite/sobjects?ids=…&allOrNone=false Your org's
Back up records before changing them GET /query?q=SELECT Id, <fields> FROM <Object> WHERE Id IN (…) Your org's

Up to 200 records per call, always with allOrNone off, so one bad row never rolls back the rest and every row gets its own result. Updates and deletes read the existing records first and write a backup file to your Mac before anything changes.

Find Duplicates

What it does Call API version
Estimate how many records there are GET /limits/recordCount?sObjects=<Object> Your org's
Test and count your filter GET /query?q=SELECT COUNT() FROM <Object> WHERE (…) Your org's
Start the download POST /jobs/query  (Bulk API 2.0) Your org's
Watch its progress GET /jobs/query/<jobId> Your org's
Collect the records GET /jobs/query/<jobId>/results?maxRecords=<n> Your org's
Clean up the finished job DELETE /jobs/query/<jobId> Your org's
Read the fields on a linked record GET /sobjects/<Linked Object>/describe Your org's
Fill in the extra fields you chose GET /query?q=SELECT Id, <extra fields> FROM <Object> WHERE Id IN (…) Your org's
Count related records GET /queryAll?q=SELECT <parent>, COUNT(Id) FROM <Child> … Your org's
Check nothing changed since the snapshot GET /query?q=SELECT Id, LastModifiedDate FROM <Object> WHERE Id IN (…) Your org's
Merge POST /services/Soap/u/<version>  with SOAPAction: merge Your org's
Tag duplicates or fill empty fields PATCH /composite/sobjects Your org's
Delete duplicates DELETE /composite/sobjects?ids=…&allOrNone=false Your org's

A match field can live on a record the chosen one points at — a contact's account name, for example. Salesforce's Bulk query accepts that directly, so it simply joins the list of fields asked for and comes back as another column; no extra request is made for it. The only extra call is one describe, to list the fields that linked record has, and it happens when you open that link on screen rather than up front. Comparing more than one kind of record runs one Bulk job per kind, one after another, each with its own paging cursor so an interrupted download resumes in the right place in the right job.

Leads that have already been converted are left out unless you ask for them, by adding IsConverted = false to that download's filter. It is added only to the query for a kind of record that has the field — asking a Contact for it is a query error, not an empty answer — and any filter you typed yourself is wrapped in brackets before it, so an OR in your filter still means what you wrote.

Records arrive in pages of up to 50,000 and are saved to your Mac as they come, so an interrupted download resumes exactly where it stopped. The matching itself happens entirely on your Mac — no record is sent back to Salesforce to be compared. That includes checking a large group a second time to see whether it is really one group of duplicates or a chain of near-misses, and holding a group back when it holds more different-looking records than your limit: both read nothing new and call nothing, and changing either compares again using the copy already on your Mac. Merging exists only in the SOAP API, so that is the one place the app uses it; merges are sent one at a time to stay clear of record locks. Salesforce can merge Accounts, Contacts, Leads and Cases; anything else is deleted to the Recycle Bin instead.

The app itself

What it does Call API version
Check for a new version GET www.dewwow.com/org-launcher/appcast.json
Count launches POST www.dewwow.com/org-launcher/ping

Both can be switched off in Settings. What the launch counter does and does not send is set out in the privacy policy.

Every host contacted

What it does Call API version
All Salesforce data, Bulk and merge calls your org's own instance with the CLI's token
Trust status only api.status.salesforce.com no login sent
Update check and launch count www.dewwow.com no account
DNS records for email domains your Mac's DNS resolver off by default

Opened in your browser rather than requested by the app: your org's login link, the Salesforce Trust page, these pages, and the Salesforce CLI setup guide. login.salesforce.com and test.salesforce.com are reached by the Salesforce CLI and your browser when you add or reconnect an org — the app itself does not call them.

What never leaves your Mac

  • The login token, held in memory only.
  • All duplicate matching, over a local copy of the records.
  • Reading and writing spreadsheets, and every CSV and Excel export.
  • Comparing metadata between two orgs.
  • Your saved org list, limits readings, query history and saved queries.
  • Backup files written before an import changes anything.

Accurate for version 1.1.4. If you find something on this page that does not match what the app does, please tell us.

Questions?

Email ejbantz@dewwow.com and include the version number from Org Launcher > About Org Launcher.

Overview  ·  Release notes  ·  Privacy  ·  What it calls

DewWow LLC · Wisconsin’s Odoo Partner · dewwow.com

Salesforce and related marks are trademarks of Salesforce, Inc. Org Launcher is an independent product and is not affiliated with, endorsed by, or sponsored by Salesforce, Inc.