Teamleader Focus
Version 5.2.1
April 2, 2026
Fixed
- Fixed country field only accepting labels (e.g., "Belgium") — now also accepts ISO codes (e.g., "BE") from prefilled dropdowns, with case-insensitive matching. (#8) - Thanks @ishetnogferre
- Fixed tags field only accepting arrays — now also normalizes comma-, semicolon-, and pipe-separated strings from hidden fields. (#10) - Thanks @ishetnogferre
- Fixed empty values in tag arrays not being filtered out, matching the string path behavior.
- Fixed
VatHelper::formatVatNumber()stripping letters from non-Belgian EU VAT numbers (FR, NL, IE, ES, etc.) and applying Belgian-specific dot formatting. Now validates against per-country EU patterns and outputs raw alphanumeric format as expected by the Teamleader Focus API. - Fixed
IdentityProviderExceptionbeing thrown with an empty error message in OAuth clientcheckResponse.
Changed
- Removed unused
$optionsparameter from_prepPayload()and dead$optionsvariable insendPayload(). - Added explicit
privatevisibility to OAuth/API URL constants in auth client (PHP 8.2). - Removed unused static
$pluginproperty from main plugin class — use inherited::getInstance()instead.
Version 5.2.0
January 18, 2026
Added
- Added "Tags" integration field for Contacts
- Added "Tags" integration field for Companies
- Added "Append Tags" option for Contacts to preserve existing tags during updates (uses
contacts.tagendpoint) - Added "Append Tags" option for Companies to preserve existing tags during updates (uses
companies.tagendpoint) - Added "Remarks" integration field for Contacts
- Added "Remarks" integration field for Companies
- Added "Summary" integration field for Deals
- Added
faxfield mapping for both contacts and companies. - Added
currencyfield mapping for deals - allows mapping currency from a form field. - Added
Default Currencysetting for deals - configurable fallback when currency is not mapped from a form field. - Added
CurrencyHelperclass for formatting currency options from Teamleader Focus API. - Added
Client Typecustom Formie field for B2B/B2C workflow differentiation. - B2B (Company) requests create contact + company + deal with linking.
- B2C (Client) requests create contact + deal only, skipping company creation.
- Field displays as radio buttons with configurable labels and default value.
- Added
ClientTypeHelperfor detecting client type from form submissions.
Changed
- Renamed Deals "Extra Information" field to "Summary" with correct API handle
Fixed
- Fixed Deals field using incorrect API handle
remarksinstead ofsummary - Fixed
linkToCompanytoggle having no effect - contacts are now properly linked to companies via thecontacts.linkToCompanyAPI endpoint when both entities exist and the setting is enabled. - Removed
mobile_phonefield from companies mapping - Teamleader Focus API only supportsphoneandfaxfor companies.
Version 5.1.1
January 15, 2026
Fixed
- Fixed custom fields not being sent in the correct API format (now properly structured as
custom_fieldsarray) - Fixed
contact_person_idsending empty string instead of being omitted when not applicable - Fixed
contact_person_idnow only included when customer is a company and a contact person exists - Fixed mobile phone type using
'phone'instead of'mobile'for the telephone type - Removed
contextfrom API payload (internal use only, not an API field)
Version 5.1.0
January 13, 2026
Added
- Added "Remarks" integration field for creating remarks via forms
- Added "estimated_value" integration field for pushing amounts to Teamleader Focus
Changed
- Refactored VAT number formatting into a reusable helper function
- Made email on companies optional to match Teamleader Focus API Specs
Fixed
- Fixed context filters not properly limiting API field results
- Fixed custom fields not saving correctly to Teamleader Focus
- Fixed address generation not conforming to Teamleader Focus API specs
- Fixed mobile_phone mapping incorrectly unsetting
phoneinstead ofmobile_phone - Fixed PHPStan return type in VatHelper::formatVatNumber()
Version 5.0.2
March 10, 2025
Fixed
- Fixed the path of the icon-mask to
teamleader, using an alias looks to the namespace, not the folder structure or plugin handle
Version 5.0.1
February 26, 2025
Fixed
- Fixed the template path of the settings templates to
teamleader-focusas the plugin had to be renamed
Version 5.0.0
February 24, 2025
- Initial Release