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
Email Email 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:

  1. Configure Lime Webhooks to send events to your middleware (e.g., Azure Logic Apps, n8n, or custom service)
  2. Your middleware transforms and pushes data to Propstreet via our API
  3. 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)

  1. Register a Propstreet webhook for contact.* and company.* events
  2. Propstreet pushes changes to your endpoint in real-time
  3. Your middleware transforms and pushes to Lime CRM

Option B: Polling

  1. Your integration layer polls the Propstreet API for changes (using updated_since)
  2. Changes are transformed and pushed to Lime CRM via their API
  3. 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:

  1. Access your Lime interactive docs at https://{domain}/{application}/api/v1/docs/
  2. Review the available limetypes (e.g., person, company)
  3. 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 strategy field
  • 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:

  1. Lime API Access - Create a dedicated API user in Lime and generate an API key
  2. Propstreet API Credentials - Generate in your account settings
  3. Integration Layer - Middleware to handle webhooks and API calls (Azure Logic Apps, n8n, or custom)
  4. 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-key header is used for authentication

Getting Started

  1. Generate Propstreet API credentials in your account settings (requires login)
  2. Create a dedicated API user in Lime CRM and generate an API key
  3. Review your Lime interactive docs at /{application}/api/v1/docs/ for available fields
  4. Set up your integration layer to sync data between Lime and Propstreet
  5. 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.

API References