---
title: Truto added Salesforce Events for Workweek in 16 hours
slug: case-studies/workweek-truto
description: "Truto added Salesforce Events for Workweek in 16 hours. Workweek, a B2B newsletter ad network, is building its CRM reporting on Truto's unified CRM API."
canonical: https://truto.one/case-studies/workweek-truto/
---

# Truto added Salesforce Events for Workweek in 16 hours

Workweek runs a B2B ad platform for newsletters and promises advertisers that every engagement it verifies lands in their CRM. It is building that on Truto's unified CRM API, for Salesforce and HubSpot.

- **16** hours to add Salesforce Events
- **8** minutes from CLI tip to working calls
- **90** minutes to diagnose a HubSpot access problem

> I made a change on our sandbox using the CLI. I listed and deleted an Event.
>
> — Matt Kindy, Workweek (September 2026, the day he asked for Salesforce Events)

## Workweek at a glance

- **Customer:** [Workweek](https://workweek.com/)
- **What they do:** Newsletters, events and a B2B ad network across HR, healthcare, fintech, marketing and ecommerce
- **Truto products used:** The [unified CRM API](https://truto.one/unified-apis/crm/), the Proxy API, environment-level overrides and the Truto CLI
- **Integrations:** [Salesforce](https://truto.one/integrations/detail/salesforce/), [HubSpot](https://truto.one/integrations/detail/hubspot/) and [Google Analytics](https://truto.one/integrations/detail/googleanalytics/)
- **Salesforce Events:** Available 16 hours after Workweek asked (Sep 10, 2026)
- **Google Analytics:** Switched on in all of Workweek's environments (Sep 18, 2026)
- **HubSpot permissions:** Cause confirmed 90 minutes after Workweek reported it (Oct 1, 2026)

## How Truto worked with Workweek

### The challenge

Workweek promises advertisers that every engagement it verifies lands in their CRM. It wrote that engagement into Salesforce as Tasks and wanted to write Events instead, which Truto's unified CRM API didn't yet cover for Salesforce.

### What Truto did

Truto added Salesforce Events to its unified CRM API, then archived events in Workweek's staging environment when Workweek asked, and switched on Google Analytics in all of Workweek's environments. Requests go through a shared Slack channel.

### The result

Salesforce Events arrived 16 hours after Workweek asked, and archived events 19 hours after it asked for them, in Workweek's staging environment. Before Events arrived, Matt Kindy had already listed and deleted one himself with the Truto CLI, minutes after asking.

## From Salesforce Events to HubSpot permissions

Timeline, 2026.

- **Sep 9, 2026:** Workweek asks for Salesforce Events. Truto points Matt Kindy to its CLI, and 8 minutes later he has listed and deleted an Event in Workweek's sandbox.
- **Sep 10, 2026:** Salesforce Events arrive on the unified CRM API: list with a subject filter, create and delete. Workweek asks for archived events too. (16 hours after asking)
- **Sep 11, 2026:** Archived events, such as backdated ones, come back on list calls in Workweek's staging environment. (19 hours after asking)
- **Sep 18, 2026:** Google Analytics is switched on in all of Workweek's environments.
- **Oct 1, 2026:** One of Workweek's HubSpot connections can't read CRM data. Truto finds HubSpot granted it only 2 permissions: the HubSpot account had optional ones switched off. (Cause confirmed in 90 minutes)

## How fast Truto delivered Workweek's requests

- **90 minutes:** Find out why one of Workweek's HubSpot connections couldn't read CRM data, and how to fix it without deleting the account
- **16 hours:** Salesforce Events on the unified CRM API: list with a subject filter, create and delete
- **19 hours:** Archived Salesforce events, such as backdated ones, on list calls in Workweek's staging environment

## Under the hood

APIs, permission checks and self-serve tools

### Salesforce

- Events through the unified CRM API, as `unified/crm/engagements` with `engagement_type=meeting`: list with a subject filter, create and delete
- List filters on contact, account, `created_at` and `updated_at`
- `include_archived` (default true) and `include_deleted` (default false) on `unified/crm/engagements` and `unified/crm/tasks`, read through Salesforce's `queryAll`, with `is_archived` and `is_deleted` on each record, in Workweek's staging environment
- Contacts read with `FIELDS(STANDARD)`, so hidden fields are skipped

### HubSpot

- Accounts, opportunities, contacts and pipelines through the unified CRM API
- Scope checks: which permissions HubSpot actually granted a connection, against the ones requested
- Reconnect links that pick up new permissions without deleting the account

### Google Analytics

- Installed in Workweek's development, staging and production environments

### Self-serve tools

- The [Truto CLI](https://truto.one/cli/), which works with Claude or Cursor through [Truto Skills](https://github.com/trutohq/truto-skills), for environment-level overrides and new unified APIs
- The Proxy API for anything the unified CRM API doesn't cover yet
- Changes reach Workweek's staging environment first, then development and production once Workweek confirms

## Questions about Workweek and Truto

### What does Workweek use Truto for?

Workweek promises advertisers that every engagement it verifies lands in their CRM, and is building that on Truto's unified CRM API for Salesforce and HubSpot. It wrote that engagement into Salesforce as Tasks and wanted Events instead, so Truto added Salesforce Events to the unified CRM API. Workweek has also connected Google Analytics through Truto's Proxy API.

### How fast did Truto add Salesforce Events for Workweek?

In 16 hours. Workweek asked on Sep 9, 2026, and by the next day Truto's unified CRM API could list Salesforce Events with a subject filter, create them and delete them. Workweek then asked for archived events, such as backdated ones, and Truto returned them in Workweek's staging environment 19 hours later.

### Can Workweek add what it needs without waiting for Truto?

Yes. When Workweek asked for Salesforce Events, Truto pointed Matt Kindy to the Truto CLI, which adds environment-level overrides and unified APIs. Eight minutes later he had listed and deleted an Event in Workweek's sandbox with it. Until the unified endpoint arrived 16 hours after the request, Workweek could use Truto's Proxy API instead.

### How did Truto diagnose a HubSpot permissions problem for Workweek?

On Oct 1, 2026, one of Workweek's HubSpot connections couldn't read CRM data. Truto checked which permissions HubSpot had actually granted and found only 2, because optional permissions were switched off in that HubSpot account. Workweek confirmed the cause 90 minutes after reporting it. Truto's recommended fix was to switch those permissions on and reconnect the same account.

## More customer stories

- [15Five: 21 integrations live, the first three within a month](https://truto.one/case-studies/15five-truto/): Slack, Jira, Google Calendar and more feed 15Five’s AI features for managers, with a public launch about 3 months after kickoff.
- [Evergrowth: 6 CRMs live within a month of signing](https://truto.one/case-studies/evergrowth-truto/): Dynamics 365, HubSpot, Salesforce, Zoho CRM, Pipedrive and Attio through a single API, with each customer’s custom fields mapped both ways.
- [BalkanID: 10 more apps in about 2 weeks, ServiceNow HR data in 4 days](https://truto.one/case-studies/balkanid-truto/): Reads users, roles and groups from the apps its customers use, including a long tail of smaller tools, through Truto’s unified user directory.
- [Komplai: ERPNext and QuickBooks behind one set of endpoints](https://truto.one/case-studies/komplai-truto/): An AI-powered accounting firm whose product calls the same accounting endpoints for ERPNext and QuickBooks Online.
