Skip to content

Apptivo

Signals reads leads, opportunities and invoices from Apptivo on a schedule and sends the fields you mapped on to your ad platforms.

Apptivo spans several apps, so the module list reflects the apps your account has enabled. Leads and Opportunities carry the contact details and the sales outcome, and Invoices carry the amount actually billed.

  • A Apptivo account holding the records you intend to sync, in the module you intend to read: Leads, Opportunities or Invoices. The fields you intend to map must already exist.
  • Administrator access to your Apptivo account, on a plan that includes API access. You need it to generate the API key and access token Signals connects with and to grant read access to the records you map.
  • A single-select field on the module you sync holding each record’s stage, such as New, Contacted, Qualified, Won or Lost. Each value maps to a conversion event, so a record left on a stale stage reports the wrong one.

In Studio, open Sources, find the CRM category, and click the Apptivo tile. This connector authenticates with credentials you add manually. Enter the following, then continue.

FieldWhere to find it
Apptivo API KeyThe API settings screen in Apptivo.
Apptivo Access TokenThe same screen as the API key.

Select the Integration Type based on where the data needs to be sent. The options are Offline Events, Audience, Meta CAPI CRM, Google Leads, TikTok Leads, Snapchat Leads and LinkedIn Leads. The choice decides which fields you are asked to map and which destinations the connection can feed, so settle it first. Then choose the Apptivo module Signals reads from, one of Leads, Opportunities or Invoices, and give the instance a name. Only modules the connection can see will appear in the list.

Map your Apptivo fields onto the schema Signals expects. Each field is a dropdown of your own fields, so nothing has to be renamed in the CRM. What you are asked to map depends on the integration type.

GroupFields
ConfigurationEvent name, event time, last modified date, lead lifecycle stage.
Personal informationEmail, phone, first name, last name, city, state, country, postcode, gender, date of birth, Facebook click ID, Google click ID, OpenAI identifier, source URL.
ProductTotal value, currency, product type, name, category, ID, brand, price, quantity, transaction ID, number of items.

Click Test Connection before finishing. It checks both that the credentials still work and that the mapped fields actually contain data, so a mapping pointed at an empty field fails here rather than silently later.

One instance is configured for one module. To read another module, configure it on a new instance from the Manage existing instance table. To change an existing one, open it from the Manage existing instance table, click the edit option in the menu to the top right, update the fields and click Finish.

Only the fields you map are read. Personal identifiers are normalized and SHA-256 hashed before they are sent to any destination.

Email, phone, name and location are what destinations match on. Value, currency and product fields describe the conversion rather than the person, so they do not affect match rates.

  • If you map a platform lead ID such as the Meta Lead ID, keep that field as text. A numeric field truncates long IDs, which is the most common cause of lead conversions never matching.
  • Confirm which Apptivo app holds the record you want before you connect, since the same customer can appear in the CRM app and the invoicing app.
  • Ensure the module holds personal information such as email address and phone number. Destinations weight these highest, so records without them match at a much lower rate.
  • Maintaining consistent formatting in Apptivo helps match rates: email addresses in lowercase, phone numbers in E.164 format, and no trailing spaces.

A module or field is not listed. The connection cannot see it. Check access in Apptivo, then reopen the setup.

Test Connection fails. A required field is unmapped, or a mapped field is empty.

Match rates are low. Map more identifiers and fix formatting at source. A hash only matches if both sides normalized the value the same way.