Instagram CRM integration
Socialift is the integration layer that connects your CRM to Instagram. Its Python SDK reads Direct conversations with contact profiles, comments and Lead Ads leads, and verifies Meta webhooks; your backend writes the data into the CRM. Socialift is not a CRM — it is the API layer your CRM uses to talk to Instagram.
Updated:
What is Instagram CRM integration?
Instagram CRM integration is the link that automatically moves Direct messages, comments and lead forms from an Instagram professional (Business or Creator) account into a CRM system. Every person who writes to you shows up in the CRM as a contact and a deal, the reply history is preserved, and no enquiry is lost.
In many companies Instagram is the main sales channel, yet the conversation stays inside a phone app. When an account manager leaves, the history goes with them; a message that arrives in the evening is not opened until morning; and nobody counts how many leads an ad actually produced.
Integration closes that gap: every event on the Instagram side — a new Direct message, a comment, a submitted lead form — lands in the CRM as a record and moves down the pipeline from there.
What Socialift does and does not do
Drawing the line early matters — it shapes how you design the integration.
- Socialift DOES
- Talks to the Instagram, Facebook, LinkedIn, TikTok and Telegram APIs: OAuth and connections, Direct conversations, comments, posts, Lead Ads, ads and webhook signature verification. The SDK returns normalised data; your backend writes it to your system.
- Socialift DOES NOT
- Socialift is not a CRM. There is no deal pipeline, no tasks, no reports and no customer database. Those stay in your CRM — Socialift becomes their data source.
- Who it fits
- Teams building their own CRM, integrators adding an Instagram channel to an existing CRM, agencies, and the engineering teams of businesses that sell through Instagram.
What data your CRM can get
Each stream is a separate SDK call or webhook field — use only what you need.
Direct conversations
ig.conversations() lists chats with the contact's profile (name, follower count, whether they follow you); ig.messages() reads messages — Meta returns details only for the 20 most recent messages per conversation. New messages arrive via the messages webhook.
Lead Ads submissions
Meta's leadgen webhook carries only IDs; your handler calls fb.lead(leadgen_id, page_token) for the answers and campaign names, then creates the lead in the CRM. Instagram Lead Ads require a Facebook Page.
Comments
A question under a post is a sales signal. Meta sends a comments webhook to your endpoint (app in Live mode, Advanced Access, public account); parse_events() splits it and your code can create a task.
Contact enrichment
Not just an ID and username — name, follower count and their relationship to the business. That feeds lead qualification directly. Available only for people who have messaged your account (ig.contact()).
Webhook helpers
verify_request() checks Meta's X-Hub-Signature-256, dedupe_key() gives a stable key for your unique column; Meta itself retries failed deliveries for up to 36 hours.
Two-way replies
ig.send_message() sends a text reply from inside the CRM — within 24 hours of the customer's last message.
Integration steps with the Socialift SDK
The full path for an engineering team. Plan extra time for Meta App Review, which you submit with a screen recording of the working integration.
Convert the Instagram account to a business type
The account must be Business or Creator. A linked Facebook Page is required for the Facebook Login path (
Instagram.via_facebook) and for Lead Ads; Instagram Login (Instagram(app_id, app_secret)) works without a Page but cannot access ads.Prepare the Meta app and permissions
Create an app in Meta for Developers and request only what you use: instagram_manage_messages (Facebook Login) or instagram_business_manage_messages (Instagram Login), plus leads_retrieval for leads. Advanced Access requires App Review.
Get a Socialift token
Sign in with Google or email and create a licence key starting with slk_ under “Tokenlar” (Tokens) in the dashboard. The first month is free, with every SDK feature unlocked — Direct, Lead Ads, insights and the rest. After renewal, features depend on the token's plan: “Tekshirish va muhitlar” (Check and environments) shows the exact list.
Embed the OAuth flow in your CRM
The user presses “Connect Instagram” inside the CRM and goes through OAuth: with Facebook Login,
fb.exchange_code()andfb.pages()return the Page token and Instagram account ID; with Instagram Login,ig.exchange_code()returns an Instagram token.Register the webhook endpoint
Set the callback URL and verify token in the App Dashboard (answer with
verify_challenge) and subscribe each Page withfb.subscribe_page(). Check the signature on the raw body (verify_request) and dedupe withdedupe_key()— Meta sends no event ID.Map events onto CRM objects
New conversation → contact and deal; lead form → lead; comment → task. That mapping is where the value of the integration actually lives.
Three ways to work with Instagram
Each approach has its place — here is an honest comparison.
| Criterion | Manually on a phone | Your own Graph API code | Socialift layer |
|---|---|---|---|
| Time to launch | Immediate | Longer: you write OAuth, signatures, limits | Shorter: ready SDK methods |
| Conversation history in CRM | No | Yes | Yes |
| Contact profile | Checked by hand | Extra code needed | Included |
| Lead Ads in real time | No | You write the webhook and lead fetch | You write a short webhook handler; fb.lead() and normalize() are ready |
| Meta API changes | No impact | Your problem | Upgrade the SDK; graph_version= lets you switch versions |
| Rate limits and retries | no | You write them | Inside the SDK |
yesnoScroll the table sideways
If you run one account and a handful of messages a day, doing it by hand is fine. Integration starts to pay off as the volume grows.
A practical example — turning conversations into CRM contacts
The Conversations API returns only a participant's ID and username; a CRM needs a name and qualification signals. Socialift gives you both at once.
import asyncio, os
from socialift import Instagram
async def main():
async with Instagram.via_facebook(app_secret=os.environ["FACEBOOK_APP_SECRET"]) as ig:
chats = await ig.conversations(page_token, page_id=PAGE_ID, ig_user_id=IG_USER_ID)
for chat in chats["data"]:
c = chat["contact"]
if not c:
continue
crm.upsert_contact(external_id=c["id"], name=c.get("name") or c.get("username"),
source="instagram_direct", followers=c.get("follower_count"),
is_follower=c.get("is_user_follow_business"))
asyncio.run(main())crm.upsert_contact is your own function. Socialift's job is to return complete, normalised data; writing it to the CRM is your code.
What Instagram CRM integration actually changes
The main measurable effect is first response time. When a Direct enquiry sits in the CRM as a task, it enters a queue and becomes accountable; in a phone app it is only a notification.
The second is attribution. Knowing which ad, post or comment produced a lead is only possible once events land in the CRM tagged with their source.
The third is history surviving staff changes. Conversations live in the system rather than on someone's personal phone.
Exact numbers differ from business to business, and we do not quote invented statistics. Measure your own response time before and after — that is the most reliable benchmark.
Frequently asked questions
What do I need to integrate Instagram with a CRM?
You need an Instagram professional account (Business or Creator), a Meta app with the right permissions and an HTTPS endpoint for webhooks. Then, through the Instagram API, you can read Direct conversations, comments and — via a linked Facebook Page — Lead Ads leads, and write them into the CRM.
Is Socialift itself a CRM?
No. Socialift is not a CRM but an integration layer between a CRM and social networks. Deals, tasks and reporting stay in your CRM; Socialift supplies the data from the Instagram, Facebook, LinkedIn, TikTok and Telegram side.
How do I get Instagram Direct messages into a CRM?
Meta sends the messages webhook straight to your endpoint. There you verify it with verify_request(), split it with parse_events(), fetch the sender's profile with ig.contact() and create or update the contact and deal in the CRM. Socialift does not forward DMs for you.
Which CRMs does it work with?
Any CRM with an API — home-grown or off-the-shelf. Your backend reads data with the Python SDK and writes it through the CRM's API. There are no ready connectors for packaged CRMs such as amoCRM or Bitrix24.
Does it work the same outside the US and Europe?
Technically yes — the Meta APIs work the same in every region. Where most enquiries come through Instagram Direct, moving conversations into the CRM is usually the first step.
Sources
Related pages
Connect Instagram to your CRM
Get a token in a minute and see your first Direct conversations with a real request in the Playground.
Get a free token →