Outreach
Connect Outreach to Ploy to see every Outreach user, their profile and their teams, and to invite, lock, unlock and move people between profiles and teams from Ploy.
Beta. The Outreach integration is in beta. It was built from Outreach's published API documentation and has not yet been run against a live Outreach organisation. Scans and changes work as described here, but please tell us if anything in Ploy does not match what you see in Outreach.
What Ploy reads and changes
Users: every user in your Outreach organisation, including locked users. Locked users are shown as blocked and lose their access in Ploy.
Profiles: each user's Outreach profile (their permission set, for example Admin) is shown as their access level on Outreach.
Teams: every Outreach team, and the users directly assigned to each one. Team membership that a user gets only through their role is not shown yet.
Last sign-in: the last time each user signed in to Outreach.
Changes (only when you ask): invite a user, lock or unlock a user, move a user to another profile, and add or remove a user from a team. Outreach has no way to delete a user through its API, so offboarding locks the user instead.
Before you start
You need an Outreach user with an admin profile. Ploy acts with that user's permissions, so their profile must be able to see and manage every user.
You need access to the Outreach Development Portal (developers.outreach.io) with the same Outreach account.
Step 1: Start the connection in Ploy
In Ploy, go to Integrations, find Outreach and click Connect.
Because the integration is in beta, the first page asks you to agree to beta terms. Tick the checkbox to continue. While the integration is in beta, when an Outreach request fails Ploy keeps a redacted copy of Outreach's error message (names, email addresses and tokens removed) so we can fix problems quickly. Nothing else changes.
Keep this page open: you will paste two values into it in Step 3.
Step 2: Register an Outreach app for Ploy
Sign in to the Outreach Development Portal at developers.outreach.io with your admin account and create a new app. Name it something like Ploy.
Set the app's visibility to Internal. An internal app is used only by your own organisation and does not need Outreach's review.
Under the app's OAuth settings, add this redirect URI exactly as written:
https://api.joinploy.com/integrations/auth/outreach/callbackSelect these scopes:
users.readandusers.write(read users, and invite, lock, unlock and change profiles and teams)teams.read(read teams)profiles.read(read profiles)
Save the app, then generate its OAuth secret. Outreach shows the secret only once, so copy it straight away. Also copy the app's Application ID (its OAuth client id).
Step 3: Enter the app details in Ploy
Back in Ploy, paste the Application ID and the Application secret into the fields on the setup page.
Click Next.
Step 4: Grant access
Click Connect to Outreach.
Outreach asks you to sign in and approve the app. Sign in as the Outreach user with an admin profile and click Authorize.
You return to Ploy, which checks it can read your Outreach teams. When the check passes, the connection is complete and the first scan starts.
What to expect after connecting
The first scan reads your teams, then your users. Users, their profiles and their team memberships all appear after the first scan.
Ploy scans Outreach every hour.
People removed from a team, or moved to another profile, are updated from the second scan onwards.
Troubleshooting
"Outreach rejected this connection": the authorization has expired or was revoked. Open the connection in Ploy and grant access again.
"The Outreach app is missing a scope": one of the four scopes in Step 2 is not selected on the app. Add it in the Development Portal, then grant access again.
"Outreach's permission settings stop this user...": the user who granted access does not have an admin profile, or their profile cannot see every user. Grant access again as a user with an admin profile.
A change from Ploy fails with Outreach's own message (for example "Email has already been taken"): Ploy passes on Outreach's reason. Check the user in Outreach and try again.