What is an API?
An API (Application Programming Interface) is a set of functions designed for interoperability between two distinct pieces of software.
Web APIs operate as a means of communication via HTTP typically in standard formats (JSON or XML). The implementation is most obvious on Insight and the Opportunity Pipeline views. These pages send and receive all data through the Act! Premium Web API (referred to a ‘the API’ for the rest of this document).
The API is a standardized interface which can be used by other applications, integrations, plugins, third-party components, and within Act! for additional functionality not present through the SDK.
It is documented in the act.web.api web page (in Act! Premium for Web installs). This page explains the endpoints, structures, and examples on all publicly
available features in the API as well as filters (OData) which can be applied to queries.
The API provides a standardized format to all UI components in the same way. All platforms support web browsers; by using a display mechanism and data source which can be utilized by the same set of controls, subsystems, and codebase across all platforms, the functionality can be better ensured across all systems.
The Insight, Companion (mobile app), Pipeline, and Act! Marketing Automation (AMA) views are web browser controls that load a specific website with certain
parameters. These parameters come from the API.
Act! Premium or Act! Premium for Web (APFW)
For single users or small offices with small databases and very little API traffic, Act! Premium (“the application”) would be a good choice. It incurs little operational overhead and is very simple to deploy
For active subscribers, we provide Act! Connect Link which can provide an externally accessible endpoint for the API so AMA and mobile app can be used in conjunction with on-premise software. As the requirements for larger teams grow, database and API performance requirements will naturally increase.
Act! Premium makes use of the Act! Web API Host service which runs on the local machines. This service is used to provide the API endpoints for the various
internal features within the application without needing to install third-party components. It is important to note that this does not provide a way for AMA, the mobile app, or Contact Link to communicate to the database unless Act! Connect Link is installed. If the computer has Windows Internet Information Services (IIS) or another web hosting system installed and running on port 80, the API will not be able to function.
Act! Premium for Web runs the API inside of IIS. As the technology stack for IIS can deal with larger volumes of traffic and can be set as a direct access point to
the system, performance will be significantly better in this scenario. It is recommended that any externally accessible web servers are provided with a valid
certificate (not self-signed) with unencrypted traffic disabled as a general best practice. The remainder of this document assumes that any web deployment
will have an externally valid server certificate. A valid certificate is required for AMA, Zapier, or Companion. Anyone looking to deploy to larger teams or teams that
will make extensive use of these external components should consider a deployment via APFW: self-hosted, Act! Premium hosting partner, or Act! Premium Cloud.
When is Act! Connect Link needed?
In smaller deployment scenarios when the use of Companion, AMA, or third party web integrations (e.g. Zapier) is desired without the need to run APFW with a
valid certificate, then Act! Connect Link will be sufficient. This scenario should follow the same best practices for the API as outlined below.
Act! Connect Link is not recommended to run with an APFW install. The correct approach for APFW is to have a valid certificate installed on the server.
Why are server certificates necessary?
Server certificates provide the only means by which two computer systems can validate the identity of each other
Within the HTTPS protocol, the client (the machine which is accessing the service) requires the server (the machine providing the service) to provide a certificate. These certificates are issued by a trusted authority (called a Certificate Authority or CA). The certificates which identify the CA are preinstalled in the system in a root certificate store with many being installed by default on Windows.
The only way computers can reliably identify each other is via cryptographic signature. These certificates provide a chain of trust between one machine and another.
General API best practices
When integrating multiple systems, data integrity is vital; this is no different when using the API. In order to maintain data integrity, only one system should be used as a system-of-record
In the case of Act! Premium, this should be the ‘publisher’ database. This minimizes the chance of database collisions and prevents different integrations
from modifying records in two different ways. Remote databases do have their own API endpoint for Insight, KPI, and Pipeline views, but this is working directly on the
database. External records should always go to or from the primary database.
It is recommended that hosting partners or large self-hosted customers running APFW (>25 users) run multiple app pools and virtual directories for any logical groups (e.g. each customer for hosting partners, divisions with different databases for self-hosted customers). Additionally, machine resources should be scaled
according to load. Virtualized servers with solid-state storage are the easiest to manage and should be considered for any large-scale deployments. Using APFW
with a valid server certificate will be significantly faster than using Act! Connect Link
Deployment Scenarios - Act! Premium
By far the least complex deployment scenario.
Shared database multi-computer
Deployment Scenarios - Act! Premium for Web
Multi-tentant hosted environments
Self-Hosted private environments (externally accessible over HTTPS)
Self-Hosted private environments (not externally accessible over HTTPS)
Act! Premium Cloud
These are the most common error pages: