Lime CRM Integration
Sync your Lime CRM contacts and companies with Propstreet automatically.
Overview
| Feature | Support |
|---|---|
| Market | Nordic (Sweden focus) |
| Sync Direction | Bidirectional |
| Real-time Updates | Yes (customer-managed sync) |
| Contacts | ✅ Full support |
| Companies | ✅ Full support |
Data Mapping
Contact Fields (Person)
| Lime CRM | Propstreet | Notes |
|---|---|---|
| First Name | First Name | |
| Last Name | Last Name | |
| Primary email synced | ||
| Mobile Phone | Phone | Preferred phone number |
| Job Title | Job Title | Synced to company connection |
| Person↔Company | Connection | Links contact to company |
| Categories/Tags | Tags | Mapped to Propstreet tags |
| Notes | Notes/Strategy | See notes section below |
| Photo | Profile Picture | Via Lime's image API if available |
Note: Lime CRM data models vary per application. Check your Lime interactive docs at
/{application}/api/v1/docs/for exact field names.
Company Fields
| Lime CRM | Propstreet | Notes |
|---|---|---|
| Company Name | Name | |
| Organization Number | External Reference | Used for matching (Nordic markets) |
| Country | Country Code | ISO 2-letter code |
| Website | Homepage URL | If available in your Lime installation |
| — | Domain | Set directly or auto-extracted from URL |
| Company Logo | Profile Picture | Via Lime's image API if available |
How Sync Works
Lime → Propstreet
You control the sync through your own integration layer:
- Configure Lime Webhooks to send events to your middleware (e.g., Azure Logic Apps, n8n, or custom service)
- Your middleware transforms and pushes data to Propstreet via our API
- Records are matched using email or organization number and created/updated in Propstreet
This gives you full control over sync timing, filtering, and data transformation.
Propstreet → Lime
When you update a contact in Propstreet, you have two options:
Option A: Webhooks (Recommended)
- Register a Propstreet webhook for
contact.*andcompany.*events - Propstreet pushes changes to your endpoint in real-time
- Your middleware transforms and pushes to Lime CRM
Option B: Polling
- Your integration layer polls the Propstreet API for changes (using
updated_since) - Changes are transformed and pushed to Lime CRM via their API
- Your Lime records stay in sync
Webhooks provide near real-time sync without polling overhead.
Duplicate Handling
We use smart matching to prevent duplicates:
- Contacts: Matched by email address first, then Lime object ID via
externalRefs - Companies: Matched by organization number, then company name + country
If we detect a potential duplicate, we update the existing record rather than creating a new one.
Field Considerations
Application-Specific Data Models
Lime CRM allows custom data models per application. Before building your integration:
- Access your Lime interactive docs at
https://{domain}/{application}/api/v1/docs/ - Review the available limetypes (e.g.,
person,company) - Map your specific fields to Propstreet's data model
Person↔Company Relationships
Lime CRM uses relations to link persons to companies. In Propstreet:
- Each contact can have multiple company connections
- Exactly one connection must be marked as
primary - Job title is stored on the connection, not the contact
When syncing, ensure you:
- Create the company first (or find existing)
- Link the person to the company with proper relationship data
Notes vs Strategy
Propstreet has two different fields for text information:
- Strategy - Investment focus (e.g., "Office properties in Stockholm, 50-200 MSEK")
- Notes - Activity log entries (call notes, meeting summaries, etc.)
How you map Lime's note fields depends on your organization's usage:
- If notes contain investment criteria → map to
strategyfield - If notes contain call logs/activity → use the Notes API endpoint
- If mixed usage → consider keyword-based routing in your integration
Phone Numbers
Lime CRM may have multiple phone fields per person. We sync the mobile number to Propstreet; other phone numbers are not synced by default.
Profile Pictures
Lime CRM uses a separate image API for photos. If your Lime installation includes image support:
- Retrieve images via Lime's file/image API
- Upload to Propstreet using the profile picture endpoint
- Propstreet accepts standard image formats (JPEG, PNG)
Setup Requirements
To build a Lime CRM integration, you'll need:
- Lime API Access - Create a dedicated API user in Lime and generate an API key
- Propstreet API Credentials - Generate in your account settings
- Integration Layer - Middleware to handle webhooks and API calls (Azure Logic Apps, n8n, or custom)
- Lime Webhooks Add-on - Required for real-time sync from Lime (subscribe to person/company events)
Lime API Key Best Practices
- Create a dedicated API user for each external system
- API keys have no expiration date but cannot be retrieved after creation
- Store the key securely (environment variables or secret management)
- The
x-api-keyheader is used for authentication
Getting Started
- Generate Propstreet API credentials in your account settings (requires login)
- Create a dedicated API user in Lime CRM and generate an API key
- Review your Lime interactive docs at
/{application}/api/v1/docs/for available fields - Set up your integration layer to sync data between Lime and Propstreet
- If using real-time sync, configure Lime Webhooks to send events to your middleware
You're responsible for building and maintaining the integration.
Frequently Asked Questions
How do I authenticate with Lime CRM?
Lime uses API keys passed via the x-api-key header. Each user can only have one API key, so create a dedicated API user for your integration.
What are Lime's rate limits?
For Lime CRM Cloud: 3000 requests per 5 minutes per IP. Plan your sync frequency accordingly.
How do I receive real-time updates from Lime?
Use the Lime Webhooks Add-on. Subscribe to events like person.new, person.update, company.delete, etc. via the subscription API at /api/v1/subscription/.
How do I validate Lime webhook signatures?
Lime signs webhook payloads using HMAC SHA-256. The signature is in the X-Lime-Signature header as sha256=[signature]. Verify it against the raw request body using your webhook secret.
What happens if my Lime data model differs from standard?
Lime allows custom limetypes and fields per application. Access your interactive docs at /{application}/api/v1/docs/ to see your exact schema, then adjust field mappings accordingly.
How often does data sync?
Sync frequency depends on how you configure your integration layer:
- Real-time: Use Lime Webhooks + Propstreet Webhooks for immediate syncs
- Scheduled: Poll both APIs on a schedule (e.g., every 15 minutes, hourly)
- Manual: Trigger syncs on-demand
How should I handle duplicates?
Use stable cross-system IDs stored in Propstreet's externalRefs:
{
"externalRefs": [{ "namespace": "lime", "id": "12345" }]
}
Search by externalRefs first, then fall back to email or organization number matching.