⚠️ Before you start: You need a PromoteSense account and at least one Portal created. If you haven't done this yet, register at your PromoteSense URL and complete the Onboarding wizard first.
💡 What are API keys? Think of API keys like a "password" that lets PromoteSense post on your behalf. Just like you give your house key to a trusted friend so they can water your plants while you're away - API keys let our system access your social media accounts to publish posts automatically. Your login password is NEVER shared.
Twitter requires 4 keys: API Key, API Secret, Access Token, and Access Secret. Here's how to get them.
Part A: Create a Twitter Developer Account
1
Go to the Twitter Developer Portal
Open your browser and go to: https://developer.x.com
Click the "Sign Up" button in the top-right corner. Log in with the SAME Twitter account you want to post from.
📷 Screenshot: Twitter Developer Portal homepage with "Sign Up" button highlighted
2
Apply for a Developer Account
Twitter will ask you a few questions:
- Select "Making a bot" or "Building tools for Twitter users" as your use case
- In the description box, write something like: "I'm building an automated social media management tool to schedule and publish posts for my business."
- Check the agreement boxes and submit
💡 Tip: Twitter usually approves Free tier accounts instantly. If it asks you to verify your email or phone, do that first.
3
Create a "Project" and an "App"
After your account is approved, you'll be taken to the Developer Dashboard.
- Click "+ Create Project"
- Name it anything you like, e.g. "PromoteSense"
- Select use case: "Making a bot"
- Project description: "Automated social media posting"
- Click "Next" and then "Create App"
- Name your app, e.g. "MyBusiness Posts"
📷 Screenshot: Twitter Developer Dashboard showing "Create Project" flow
4
Get your API Key and API Secret
After creating the app, Twitter immediately shows you:
- API Key (also called "Consumer Key") - looks like:
xvz1evFS4wEEPTGEFPHBog
- API Secret (also called "Consumer Secret") - looks like:
L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg
🛑 IMPORTANT: Copy both keys RIGHT NOW and save them in Notepad. Twitter will NOT show the Secret again. If you lose it, you'll need to regenerate new ones.
📷 Screenshot: Twitter showing API Key and Secret after app creation (Secret partially hidden)
Part B: Get your Access Token and Secret
5
Set App Permissions to "Read and Write"
Before generating tokens, you MUST change permissions:
- Go to your app in the Developer Portal
- Click on the "Settings" tab
- Scroll down to "App permissions"
- Click "Edit"
- Select "Read and Write" (NOT just "Read")
- Click "Save"
🛑 CRITICAL: If you skip this step, PromoteSense won't be able to post tweets. It will only be able to read them. ALWAYS set permissions BEFORE generating tokens.
📷 Screenshot: App Settings page with "Read and Write" permission selected
6
Generate Access Token and Access Secret
- Go to the "Keys and Tokens" tab of your app
- Under "Authentication Tokens", find "Access Token and Secret"
- Click "Generate"
- Two new values will appear:
- Access Token - looks like:
1234567890-AbCdEfGhIjKlMnOpQrStUvWxYz
- Access Secret - looks like:
kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw
🛑 IMPORTANT: Copy BOTH values immediately and save them in Notepad. These are shown ONLY ONCE.
📷 Screenshot: Keys and Tokens tab showing generated Access Token and Secret
7
Summary - Your 4 Twitter Keys
You should now have all 4 values saved in Notepad:
| What Twitter Calls It | What PromoteSense Calls It | Example Format |
| API Key (Consumer Key) | API Key | xvz1evFS4wEEPTGE... |
| API Secret (Consumer Secret) | API Secret | L8qq9PZyRg6ieKGE... |
| Access Token | Access Token | 1234567890-AbCdEf... |
| Access Token Secret | Access Secret | kAcSOqF21Fu85e7z... |
✅ Jump to "How to paste keys into PromoteSense"
LinkedIn Connect LinkedIn
LinkedIn requires 1 key: an Access Token. Getting it takes a few more steps because LinkedIn uses a process called "OAuth" (don't worry, we'll walk through it).
Part A: Create a LinkedIn Developer App
1
Go to LinkedIn Developers
Open: https://www.linkedin.com/developers/
Click "Create App". You must be logged into the LinkedIn account you want to post from.
📷 Screenshot: LinkedIn Developers page with "Create App" button
2
Fill in App Details
| Field | What to Enter |
| App name | Your business name, e.g. "SaveTaxNow Social" |
| LinkedIn Page | Select your LinkedIn Company Page (you MUST have one) |
| App logo | Upload any logo image (required) |
| Privacy policy URL | Your website URL, e.g. https://yourdomain.com/privacy |
Click "Create App".
⚠️ Don't have a Company Page? Go to LinkedIn, click "For Business" (top-right), then "Create a Company Page". It takes 2 minutes. You need this before creating the developer app.
3
Request the right permissions (Products)
- In your app dashboard, click the "Products" tab
- Find "Share on LinkedIn" and click "Request Access"
- Also request "Sign In with LinkedIn using OpenID Connect"
- Wait for approval (usually instant, sometimes takes a few hours)
📷 Screenshot: LinkedIn App Products tab showing "Share on LinkedIn" with Request Access button
4
Set Redirect URL
- Click the "Auth" tab in your app settings
- Under "OAuth 2.0 settings", find "Authorized redirect URLs"
- Add:
https://www.linkedin.com/developers/tools/oauth/redirect
- Click "Update" (or the + button)
Also on this same page, note down your Client ID and Client Secret - you'll need them in the next step.
📷 Screenshot: Auth tab showing Client ID, Client Secret, and Redirect URL field
Part B: Generate an Access Token
5
Use LinkedIn's Token Generator Tool
This is the easiest way to get a token without any coding:
- Go to: https://www.linkedin.com/developers/tools/oauth
- Select your app from the dropdown
- Under "OAuth Scopes", check these boxes:
- ☑
w_member_social (to post on your personal profile)
- ☑
r_liteprofile (to read your profile info)
- Click "Request access token"
- LinkedIn will redirect you to a login page - log in and click "Allow"
- You'll get an Access Token - it's a long string of letters and numbers
📷 Screenshot: LinkedIn OAuth Token Generator Tool with scopes selected
6
Copy Your Access Token
The token will look something like:
AQVhj3gFrL2kO9WxYz5nBp8rTmJkLsNq1A2B3C4D5E6F7G8H9...
Copy this entire value and save it in Notepad.
⚠️ Token Expiry: LinkedIn tokens expire after 60 days. When posts stop working, come back here and generate a new token. PromoteSense will alert you by email before your token expires.
7
Summary - Your LinkedIn Key
| What LinkedIn Calls It | What PromoteSense Calls It | Where You Paste It |
| Access Token | Access Token | Settings → Platform Connections → LinkedIn |
The other 3 fields (Access Secret, API Key, API Secret) can be left blank for LinkedIn.
✅ Jump to "How to paste keys into PromoteSense"
Instagram / Facebook Connect Instagram
Instagram posting works through Facebook's system (called "Meta"). You need a Facebook Page linked to an Instagram Business Account. PromoteSense needs: Access Token + Page ID.
Part A: Prerequisites (One-Time Setup)
1
Make sure you have these 3 things
- A Facebook Page for your business (not your personal profile)
- An Instagram Business or Creator account (not a personal account)
- Your Facebook Page linked to your Instagram account
💡 How to switch to Instagram Business Account: Open Instagram app → Settings → Account → Switch to Professional Account → Select "Business". Then go to Settings → Linked Accounts → Facebook → link your Facebook Page.
Part B: Create a Meta (Facebook) Developer App
2
Go to Meta Developer Portal
Open: https://developers.facebook.com/
Click "My Apps" (top right) and then "Create App".
📷 Screenshot: Meta Developer Portal with "Create App" button
3
Set Up the App
- Select app type: "Business"
- App name: e.g. "MyBusiness Social"
- Contact email: your business email
- Business Portfolio: select your business (or "I don't have one")
- Click "Create App"
4
Add Instagram Graph API to your app
- In the App Dashboard, scroll down to "Add Products"
- Find "Instagram Graph API" and click "Set Up"
📷 Screenshot: App Dashboard showing "Instagram Graph API" product with Set Up button
Part C: Generate an Access Token
5
Use the Graph API Explorer
This is the easiest way to get your token:
- Go to: https://developers.facebook.com/tools/explorer/
- In the top-right dropdown, select your app
- Click "Generate Access Token"
- A popup will ask you to grant permissions. Check these boxes:
- ☑
pages_show_list
- ☑
pages_read_engagement
- ☑
pages_manage_posts
- ☑
instagram_basic
- ☑
instagram_content_publish
- Click "Generate Access Token" and then "Allow" in the popup
📷 Screenshot: Graph API Explorer with permissions checkboxes and Generate button
6
Convert to a Long-Lived Token (IMPORTANT!)
The token from Step 5 expires in 1 hour. You need to convert it to a long-lived token (60 days):
- Go to: https://developers.facebook.com/tools/debug/accesstoken/
- Paste your token and click "Debug"
- At the bottom, click "Extend Access Token"
- A new, longer token will appear - copy this one
🛑 Use the EXTENDED token, not the short-lived one. The short one will stop working in 1 hour.
📷 Screenshot: Access Token Debugger showing "Extend Access Token" button
Part D: Get Your Instagram Page ID
7
Find Your Instagram Business Account ID
Go back to the Graph API Explorer and paste this into the query box at the top:
me/accounts?fields=id,name,instagram_business_account
Click "Submit". You'll see a result like:
{
"data": [
{
"id": "123456789012345",
"name": "Your Business Page",
"instagram_business_account": {
"id": "17841412345678901"
}
}
]
}
The number inside instagram_business_account.id (e.g. 17841412345678901) is your Instagram Page ID. Copy it.
📷 Screenshot: Graph API Explorer showing the query result with Instagram Business Account ID highlighted
8
Summary - Your Instagram Keys
| What Meta Calls It | What PromoteSense Calls It | Where You Paste It |
| Long-Lived User Access Token | Access Token | Settings → Platform Connections → Instagram |
| Instagram Business Account ID | API Key | Settings → Platform Connections → Instagram |
Leave Access Secret and API Secret blank for Instagram.
⚠️ Token Expiry: Meta tokens expire after 60 days. Repeat Steps 5-6 to get a fresh token when PromoteSense alerts you. In future, we plan to add auto-refresh.
✅ Jump to "How to paste keys into PromoteSense"
WhatsApp WhatsApp Business API (Broadcast)
PromoteSense uses the official WhatsApp Business Cloud API to send bulk messages to your contacts. You need: Access Token + Phone Number ID. Cost: approx Rs.0.50 per message.
Part A: Set Up Meta Business Account
1
Create or verify your Meta Business Account
- Go to: https://business.facebook.com/
- If you don't have an account, click "Create Account"
- Enter your business name, your name, and business email
- Complete verification if prompted
💡 If you already have a Facebook Page, you likely already have a Meta Business account.
2
Create a Meta Developer App
- Go to: https://developers.facebook.com/
- Click "My Apps" then "Create App"
- Select type: "Business"
- App name: e.g. "MyBusiness WhatsApp"
- Link to your Meta Business Account
- Click "Create App"
📷 Screenshot: Create App dialog with Business type selected
3
Add WhatsApp product to your app
- In your App Dashboard, scroll to "Add Products"
- Find "WhatsApp" and click "Set Up"
- Select your Meta Business Account when prompted
📷 Screenshot: App Dashboard with WhatsApp product "Set Up" button
Part B: Get your Phone Number ID
4
Configure WhatsApp in your app
- After adding WhatsApp, click "WhatsApp" > "API Setup" in the left sidebar
- You'll see a test phone number provided by Meta (you can use this for testing)
- Your Phone Number ID is shown on this page - it looks like:
123456789012345
- Copy this Phone Number ID and save it in Notepad
📷 Screenshot: WhatsApp API Setup page showing Phone Number ID
💡 Test phone number: Meta gives you a free test number. You can use it to test with up to 5 verified numbers. To send to anyone, you'll need to add your own business phone number later.
Part C: Get your Access Token
5
Get a Temporary Token (for testing)
On the same "API Setup" page, you'll see a "Temporary access token". This expires in 24 hours but is good for testing.
EAAGn4ZBZBaKcYBO3nFIu0xLKYz8lZCb5m9hP2qR7sT...
Copy this token for initial testing.
6
Get a Permanent Token (for production)
For long-term use, create a permanent (non-expiring) System User token:
- Go to Meta Business Settings > System Users
- Click "Add" to create a new System User
- Name: "PromoteSense Bot", Role: "Admin"
- Click "Generate New Token"
- Select your WhatsApp app
- Check these permissions:
- ☑
whatsapp_business_management
- ☑
whatsapp_business_messaging
- Click "Generate Token"
- Copy the token - this one does NOT expire
🛑 IMPORTANT: Save this token immediately. It is shown ONLY ONCE.
📷 Screenshot: System User token generation with WhatsApp permissions checked
7
Add your own phone number (optional)
To send from your actual business number instead of the test number:
- In "WhatsApp" > "API Setup", click "Add phone number"
- Enter your business phone number (must have WhatsApp Business app installed)
- Verify via SMS or voice call
- Your new Phone Number ID will appear - use this one instead
⚠️ Adding your own number means it can NO LONGER be used with the WhatsApp Business app. The API takes over. Use a dedicated number for API messaging.
8
Summary - Your WhatsApp Keys
| What Meta Calls It | What PromoteSense Calls It | Where You Paste It |
| System User Access Token (or temporary token) | Access Token | Settings > Platform Connections > WhatsApp |
| Phone Number ID | API Key | Settings > Platform Connections > WhatsApp |
Leave Access Secret and API Secret blank for WhatsApp.
✅ Jump to "How to paste keys into PromoteSense"
Using WhatsApp Broadcast in PromoteSense
9
Upload contacts and send
- Go to WhatsApp page in the sidebar
- Upload a CSV file with columns: Name,Phone (phone format: 919876543210)
- Type your message or use "AI Suggest" to get message ideas
- Click "Send Broadcast"
- PromoteSense sends your message to each contact via the WhatsApp Cloud API
- Cost: Rs.0.50 per message, deducted from your wallet
💡 WhatsApp CTA in other modules: You can also add a WhatsApp CTA (call-to-action) to AI-generated posts, blogs, ad copy, and images. Just select "WhatsApp" in the CTA dropdown and enter your number.
💡 wa.me links: For click-to-chat links, use: https://wa.me/919876543210 (country code + number, no spaces/dashes/plus).
📋 How to Paste Keys into PromoteSense
1
Go to Settings
Log in to PromoteSense and click "Settings" in the left sidebar (the gear icon at the bottom).
📷 Screenshot: PromoteSense sidebar with Settings highlighted
2
Find "Platform Connections"
Scroll down to the "Platform Connections" card. You'll see a dropdown and 4 text fields.
3
Select the Platform and Paste Your Keys
For Twitter:
| PromoteSense Field | Paste This |
| Platform | Select: Twitter |
| Access Token | Your Twitter Access Token |
| Access Secret | Your Twitter Access Token Secret |
| API Key | Your Twitter API Key (Consumer Key) |
| API Secret | Your Twitter API Secret (Consumer Secret) |
For LinkedIn:
| PromoteSense Field | Paste This |
| Platform | Select: LinkedIn |
| Access Token | Your LinkedIn Access Token |
| Access Secret | (leave blank) |
| API Key | (leave blank) |
| API Secret | (leave blank) |
For Instagram:
| PromoteSense Field | Paste This |
| Platform | Select: Instagram |
| Access Token | Your long-lived Meta Access Token |
| Access Secret | (leave blank) |
| API Key | Your Instagram Business Account ID (e.g. 17841412345678901) |
| API Secret | (leave blank) |
For WhatsApp:
| PromoteSense Field | Paste This |
| Platform | Select: WhatsApp |
| Access Token | Your Meta System User token (or temporary token) |
| Access Secret | (leave blank) |
| API Key | Your Phone Number ID (e.g. 123456789012345) |
| API Secret | (leave blank) |
4
Click "Save Connection"
Click the "Save Connection" button. You should see a green success message: "Platform connection saved."
The platform will now appear in the "Platform Connections" list above with a green "Connected" badge.
📷 Screenshot: Settings page showing saved platforms with Connected badges
💡 You can save multiple platforms. Save Twitter first, then change the dropdown to LinkedIn and save again, then Instagram. Each one gets saved separately.
🔧 Common Problems & Fixes
| Problem | Cause | Fix |
| "Unauthorized" or "403 Forbidden" when posting to Twitter | App permissions set to "Read" only | Go to Twitter Developer Portal → App Settings → change to "Read and Write" → regenerate Access Token and Secret → save new keys in PromoteSense |
| "Token expired" on LinkedIn | LinkedIn tokens expire every 60 days | Go to LinkedIn OAuth Tool → generate a new token → paste in PromoteSense Settings |
| "OAuthException" on Instagram | Meta token expired (60 days) or permissions not granted | Go to Graph API Explorer → regenerate token → extend it → paste in PromoteSense |
| Instagram post says "Media container error" | Instagram Business Account not linked to Facebook Page | Instagram App → Settings → Linked Accounts → Facebook → link your Page |
| "No Instagram Business Account found" | Using a personal Instagram account | Switch to Business Account: Instagram → Settings → Account → Switch to Professional |
| Twitter shows "Rate limit exceeded" | Free tier allows limited posts per month | Wait 15 minutes and try again, or upgrade to Twitter Basic tier ($100/mo) |
| Posts scheduled but never published | Keys are incorrect or the Windows Service job isn't running | Check Settings → verify Connected badge is green. Contact admin if jobs aren't running. |
| Can't create LinkedIn Developer App | No LinkedIn Company Page | Create one first: LinkedIn → For Business → Create a Company Page |
📞 Need help? If you're stuck on any step, contact PromoteSense support or your admin. We're happy to help you get connected!
PromoteSense Social Media Integration Guide v1.0 — Last updated April 2026