IFS CRM Integration Setup
Connecting Paminga to IFS Cloud is self-service. You paste four values into a form and Paminga authenticates against your IFS environment on the spot — no Paminga support ticket, no waiting on a scheduled call.
The part that takes planning is on the IFS side. Your IFS administrator needs to create API credentials for Paminga, grant access to a set of projections, and turn on the IFS History Log for a handful of objects. Everything on this page under What Your IFS Administrator Provisions is written for them.
Once that's done:
- Connect Paminga to IFS with the four values your IFS admin gives you
- Map fields between IFS and Paminga
- Kick off your first full sync — differential syncs then run automatically
What Your IFS Administrator Provisions
Environments
Most IFS customers run more than one environment — commonly CFG, UAT, and PROD. Decide up front which one Paminga is connecting to, because the credentials and the environment identifier are specific to each.
When you move from a sandbox environment to production, connect production to its own new Paminga instance rather than repointing the existing one. Trial and test data stays where it belongs, and your production instance starts clean.
API Credentials
Paminga connects to the IFS Cloud API for bi-directional communication, authenticated via OAuth using the client credentials grant. Your IFS admin creates an IAM client for Paminga and provides four values:
| Value | What it is |
|---|---|
| IFS Base URL | The https:// URL of the IFS environment Paminga will connect to |
| Environment | The short environment identifier that appears in the OAuth token URL (see below) |
| Client ID | The IAM Client ID for the Paminga client |
| Client Secret | The IAM Client Secret for the Paminga client |
The Environment Identifier
Paminga requests its OAuth access token from a URL that contains a short code identifying your specific IFS environment:
https://{your-ifs-domain}/auth/realms/{environment}/protocol/openid-connect/token
That {environment} segment is what Paminga asks for. It typically follows a companycfg1 / companyprd1 pattern — one value for your config environment, another for production. If your IFS admin knows it as the Keycloak realm name, that's the same value.
API Projections
Paminga reads and writes through IFS projections, and needs access to each of the following. Exactly which ones matter depends on what you're syncing — if you aren't using Paminga to create Cases, for example, the case projections don't apply to you.
| Projection | What Paminga uses it for |
|---|---|
BusinessActivityHandling | Creating tasks, plus the activity sub-type, priority, and time zone pick lists |
BusinessActivitiesHandling | Marking activities in progress or complete |
BusinessLeadHandling | Reading and writing Leads, lead addresses and reps, the qualification process, and the Source pick list |
BusinessLeadContactHandling | Lead contact records |
BusinessOpportunityHandling | Reading Opportunities |
CasualCaseAssistant | Reading Cases and creating case actions |
CreateNewCaseHandling | Creating Cases, and the case category pick list |
CrmContactCreation | Creating Contacts and running lead duplication checks |
CrmCustomerContactHandling | Reading and writing Contacts and their customer relationships |
CrmCustomerHandling | Reading and writing Accounts, plus the country, language, and currency pick lists |
CustomerHandling | Account addresses and communication methods |
EntityConfigHandling | Discovering your IFS custom fields so you can map them |
EnumConfigHandling | Enumeration configuration backing your pick lists |
HistoryLogHandling | Detecting what changed since the last sync (see IFS History Log) |
MainCaseHandling | Case state changes, and the case type, severity, priority, and queue pick lists |
MarketingCampaignHandling | Campaigns, campaign actions, and campaign targets |
MarketingCampaignsHandling | Campaign collections |
MarketingCampaignTypesHandling | Campaign type configuration |
MarketingCampaignResponsesHandling | Campaign responses |
MarketingCampaignInterestForContactsHandling | Contact-level campaign interest |
MarketingCampaignEntity | Campaign entity access |
MarketingCampaignActionEntity | Campaign action entity access |
MarketingCampaignTargetEntity | Campaign target entity access |
MarketingCampaignTypeEntity | Campaign type entity access |
MarketingListHandling | Marketing lists |
MarketingListContactEntity | Marketing list contact entity access |
PersonHandling | Person-level contact details, addresses, and communication methods |
PersonsHandling | Looking up person records |
UserGroupHandling | Reading the IFS user groups Paminga syncs users from |
UserHandling | Reading individual IFS users for record ownership |
UserSettings | Reading your IFS server's time zone |
Paminga can also assign record owners by sales territory when it creates Leads in IFS. That depends on a territory lookup projection belonging to your own IFS configuration rather than to standard IFS, so it won't be on the list above — your IFS administrator will know whether you have one and what it's called.
IFS gates access per projection, and a projection often depends on others behind the scenes — its lookups and reference data resolve to separate projections that need their own grants. If something Paminga does returns an access error, your IFS admin can find the exact projection to grant by watching the IFS log window for a FndProjectionGrant.SRV_NOT_ACCESS entry, which names the missing projection directly. That's more reliable than reading the URL, because the projection that's actually blocked isn't always the one in the request.
IFS History Log
The IFS History Log records the date and time at which a record was created, updated, or deleted. Paminga reads it to work out which records changed since the last sync, which is what makes differential syncing possible — without it, the only option is refetching everything every time.
Enable the History Log for these five objects:
| Object | Corresponds to |
|---|---|
CustomerInfo | Accounts |
CustomerInfoContact | Contacts |
BusinessLead | Leads |
BusinessOpportunity | Opportunities |
FndUser | Users |
An IFS User Account for Paminga
This one is optional, and it's a request rather than a requirement. Giving Paminga a named user account with appropriate access to the IFS Cloud user interface makes support dramatically faster — we can confirm what a record actually looks like in IFS rather than asking you to screenshot it.
If you'd rather not, the integration works fine without it.
Connect Paminga to IFS
Hover your user avatar in the upper right corner of Paminga and click "Integrations". You'll find Paminga's integrations listed alphabetically.
Scroll to IFS CRM and click "Connect". Paminga asks for the four values covered above:
- IFS Base URL — must start with
https:// - Environment
- Client ID
- Client Secret
Click Connect. Paminga immediately exchanges those credentials for an access token against your IFS environment, so you know within a second or two whether they're right. If any of the four is wrong, nothing is saved and Paminga tells you the credentials were rejected rather than creating a broken integration you'd discover later.
On success, Paminga creates your IFS integration and begins building your field mappings in the background.
Field Mappings
You control which IFS fields sync into Paminga, and which fields Paminga is allowed to write back. No IFS administrator required — checkboxes on a page in Paminga.
Set up your IFS Field Mappings before running your first full sync. You can change them at any time afterward.
Syncing Your Data
With field mappings in place, kick off your first Full Sync. After that, differential syncs run automatically and pick up everything created, updated, or deleted since the last one.
Read up on Syncing CRM Data for how full and differential syncs differ and how often they run.
You can also limit what comes across in the first place:
IFS Sync Actions
Sync Actions let you trigger actions on Leads and Contacts as they sync into Paminga from IFS, without building a separate workflow for it.
Paminga can also push the other direction, creating records in IFS when you explicitly ask it to:


