What This Agent Does
This intelligent automation agent transforms your Facebook Messenger into a powerful product inquiry system that works around the clock. Every hour, it automatically checks your Facebook conversations for customer product inquiries, uses AI to understand what customers are looking for, matches their requests against your Airtable inventory database, and sends personalized responses—all without any manual intervention.
Key benefits include:
-
Save 10+ hours per week by eliminating manual message checking and product lookups
-
Respond faster with automated replies sent within an hour of customer inquiries
-
Never miss a sale with continuous monitoring of customer messages
-
Maintain quality through AI-powered product matching that understands natural language
-
Track performance with automatic logging of all interactions to Google Sheets
This agent is perfect for e-commerce businesses receiving product inquiries through Facebook Messenger, retail stores managing inventory in Airtable, and customer service teams looking to automate repetitive product lookup requests.
Who Is It For
This automation is designed for:
-
E-commerce store owners who receive frequent product availability questions via Facebook Messenger and want to provide instant responses without hiring additional staff
-
Small business retailers managing their inventory in Airtable who need to bridge the gap between their product database and customer communications
-
Customer service managers looking to reduce response times and free up their team to handle more complex customer issues
-
Social media managers responsible for multiple Facebook pages who can't manually monitor every conversation in real-time
-
Dropshippers and online sellers who need to quickly confirm product availability to interested buyers before they lose interest
If you're spending more than an hour daily checking Facebook messages and looking up product information, this agent will dramatically improve your efficiency and customer satisfaction.
Required Integrations
Facebook (Meta) Business Integration
Why it's needed: This integration allows the agent to read incoming Facebook Messenger conversations and send automated replies to customers.
Setup steps:
- Go to Facebook Developers and create a developer account if you don't have one
- Create a new app and select "Business" as the app type
- Add the "Messenger" product to your app
- Navigate to Messenger Settings and generate a Page Access Token for the Facebook Page you want to monitor
- Copy your Page Access Token—this will be used in the HTTP request nodes
- Set up a webhook subscription (optional for real-time notifications, but not required for this hourly polling setup)
Configuration in TaskAGI:
The Facebook integration is implemented through HTTP requests rather than a native integration. You'll need to store your Page Access Token as a secret variable in TaskAGI:
- Go to Settings → Environment Variables
- Create a new secret variable named
FACEBOOK_PAGE_TOKEN
- Paste your Page Access Token as the value
Airtable
Why it's needed: Airtable serves as your product inventory database that the AI will search through to match customer inquiries with available products.
Setup steps:
- Sign up for an Airtable account at airtable.com if you don't have one
- Create a base for your product inventory or use an existing one
- Ensure your products table includes fields like: Product Name, Description, Price, SKU, Availability Status
- Go to airtable.com/account and generate a Personal Access Token
- Copy your Base ID (found in the API documentation for your base at airtable.com/api)
- Note your Table Name exactly as it appears in Airtable
Configuration in TaskAGI:
- Navigate to Integrations in your TaskAGI dashboard
- Click "Add Integration" and select Airtable
- Enter your Personal Access Token
- Test the connection to verify it works
- The integration will now be available in the "Fetch Inventory from Airtable" node
OpenAI
Why it's needed: OpenAI's GPT-4 model powers the intelligent product matching, understanding customer inquiries in natural language and finding the best matching products from your inventory.
Setup steps:
- Create an account at platform.openai.com
- Navigate to API Keys section in your account settings
- Click "Create new secret key" and give it a descriptive name like "TaskAGI Product Matcher"
- Copy the API key immediately (it won't be shown again)
- Add credits to your OpenAI account—this workflow typically costs $0.01-0.03 per inquiry with GPT-4
Configuration in TaskAGI:
- Go to Integrations in TaskAGI
- Select "Add Integration" and choose OpenAI
- Paste your API key
- Test the connection
- The integration will be available for the "AI: Analyze & Match Product" node
Google Sheets
Why it's needed: Google Sheets logs invalid or problematic messages for review, helping you identify issues and improve your automation over time.
Setup steps:
- Create a Google Sheet to track invalid messages with columns: Timestamp, Sender ID, Message Content, Reason
- Go to console.cloud.google.com
- Create a new project or select an existing one
- Enable the Google Sheets API for your project
- Create credentials (OAuth 2.0 Client ID) for a web application
- Download the credentials JSON file
Configuration in TaskAGI:
- Navigate to Integrations and select Google Sheets
- Upload your credentials file or paste the client ID and secret
- Complete the OAuth flow to authorize TaskAGI
- Copy your Google Sheet URL and save it as an environment variable
GOOGLE_SHEET_URL
Configuration Steps
Step 1: Configure the Hourly Schedule Trigger
The Hourly Schedule node initiates the entire workflow automatically.
- Set the interval to
60 minutes for hourly checks
- Choose your preferred start time (e.g.,
00:00 to run on the hour)
- Enable the trigger to activate the automation
Pro tip: Start with a 2-hour interval during testing to avoid rate limits, then reduce to hourly once everything works smoothly.
Step 2: Set Up Get Facebook Conversations
The Get Facebook Conversations node retrieves recent conversations from your Facebook Page.
Configure the HTTP request:
-
Method:
GET
-
URL:
https://graph.facebook.com/v18.0/me/conversations?access_token={{FACEBOOK_PAGE_TOKEN}}
-
Headers:
Content-Type: application/json
This node fetches all active conversations. The response includes conversation IDs needed for the next step.
Step 3: Configure Get Conversation Messages
The Get Conversation Messages node retrieves messages from each conversation.
-
Method:
GET
-
URL:
https://graph.facebook.com/v18.0/[[conversation_id]]/messages?access_token={{FACEBOOK_PAGE_TOKEN}}
-
Loop through: Results from the previous node
This iterates through each conversation and fetches the most recent messages.
Step 4: Set Up Extract & Validate Message
The Extract & Validate Message function node processes raw message data.
This custom function should:
- Extract the message text, sender ID, and timestamp
- Validate that the message is from a customer (not your page)
- Check if the message is recent (within the last hour to avoid duplicate processing)
- Filter out messages that have already been replied to
Example validation logic:
// Check if message is from customer and recent
const isValid = message.from.id !== PAGE_ID &&
(Date.now() - message.created_time) < 3600000;
return { valid: isValid, from_id: message.from.id, text: message.message };
Step 5: Configure Message Valid? Condition
The Message Valid? if-condition node routes the workflow based on validation.
-
Condition:
[[nodes.4391.valid]] === true
-
True path: Continues to product lookup
-
False path: Logs to Google Sheets for review
This ensures only valid customer inquiries proceed to the expensive AI processing step.
Step 6: Set Up Fetch Inventory from Airtable
The Fetch Inventory from Airtable node retrieves your product catalog.
Configure:
-
Base ID: Your Airtable base identifier
-
Table Name: Your products table name (e.g.,
Products)
-
View: Leave blank to fetch all records, or specify a view like
Available Products
-
Fields: Select specific fields or leave empty for all fields
The node returns all product records that will be analyzed by AI.
Step 7: Configure AI: Analyze & Match Product
The AI: Analyze & Match Product node is the intelligence center of your automation.
Settings:
-
Model:
gpt-4o (optimized for speed and cost)
-
Temperature:
0.3 (lower for more consistent, factual responses)
-
Max Tokens:
500
Prompt structure:
You are a helpful product lookup assistant for a business.
Customer inquiry: [[nodes.4391.text]]
Available inventory:
[[nodes.4393.records]]
Analyze the customer's message and find the best matching product(s) from the inventory. If you find a match, respond with:
FOUND: [Product Name] - [Price] - [Brief description]
If no suitable match exists, respond with:
NOT_FOUND: [Brief explanation of why no match was found]
This prompt gives the AI context, the customer's question, and your inventory to make intelligent matches.
Step 8: Configure Product Found? Condition
The Product Found? if-condition determines which reply to send.
-
Condition:
[[nodes.4394.response]].startsWith("FOUND:")
-
True path: Sends positive product information
-
False path: Sends "not available" message
Step 9: Set Up Send Reply: Product Found
The Send Reply: Product Found node sends the good news to customers.
Configure the HTTP request:
-
Method:
POST
-
URL:
https://graph.facebook.com/v18.0/me/messages?access_token={{FACEBOOK_PAGE_TOKEN}}
-
Body:
{
"recipient": {"id": "[[nodes.4391.from_id]]"},
"message": {
"text": "Great news! [[nodes.4394.response]]"
}
}
This sends a personalized message with the product information the AI found.
Step 10: Set Up Send Reply: Not Found
The Send Reply: Not Found node manages customer expectations when products aren't available.
-
Method:
POST
-
URL: Same as above
-
Body:
{
"recipient": {"id": "[[nodes.4391.from_id]]"},
"message": {
"text": "Thank you for your inquiry! [[nodes.4394.response]] Would you like me to notify you when similar products become available?"
}
}
This maintains a positive customer experience even when you can't fulfill the request immediately.
Step 11: Configure Log Invalid Message
The Log Invalid Message node tracks messages that didn't pass validation.
Settings:
-
Sheet URL:
{{GOOGLE_SHEET_URL}}
-
Row data: Map fields to columns:
- Column A:
[[nodes.4391.timestamp]]
- Column B:
[[nodes.4391.from_id]]
- Column C:
[[nodes.4391.text]]
- Column D:
[[nodes.4391.validation_reason]]
This creates an audit trail for improving your automation.
Testing Your Agent
Running Your First Test
-
Prepare test data: Send yourself a test message on your Facebook Page asking about a product you know is in your Airtable inventory
-
Trigger manually: In TaskAGI, click "Run Now" on the workflow instead of waiting for the hourly schedule
-
Monitor execution: Watch the workflow execution panel to see each node complete
-
Check timing: The entire workflow should complete in 10-30 seconds depending on your inventory size
Verification Checklist
After the Hourly Schedule triggers:
- ✅ Verify the schedule fired at the correct time in the execution logs
After Get Facebook Conversations:
- ✅ Check that conversation IDs were retrieved (should see an array of conversations)
- ✅ Confirm your test conversation appears in the results
After Get Conversation Messages:
- ✅ Verify your test message appears in the message list
- ✅ Check that the message text is correctly extracted
After Extract & Validate Message:
- ✅ Confirm the validation returned
true for your test message
- ✅ Verify the sender ID and message text are properly formatted
After Fetch Inventory from Airtable:
- ✅ Check that product records were retrieved (should see your inventory)
- ✅ Verify all necessary fields (name, price, description) are present
After AI: Analyze & Match Product:
- ✅ Review the AI's response to ensure it correctly identified your product
- ✅ Check that the response format matches your expected pattern (FOUND: or NOT_FOUND:)
After Send Reply:
- ✅ Check your Facebook Messenger to confirm the reply was sent
- ✅ Verify the message content is appropriate and helpful
Expected Results
Successful execution indicators:
- All nodes show green checkmarks
- Total execution time: 10-30 seconds
- Facebook reply received within 1 minute
- No error messages in any node
- Google Sheet updated if any invalid messages were encountered
Troubleshooting
Facebook API Issues
Error: "Invalid OAuth access token"
-
Cause: Your Facebook Page Access Token has expired or is incorrect
-
Solution: Generate a new Page Access Token from Facebook Developers and update your
FACEBOOK_PAGE_TOKEN environment variable
-
Prevention: Facebook tokens expire; set a calendar reminder to refresh them every 60 days
Error: "Unsupported get request"
-
Cause: Incorrect API endpoint or conversation ID format
-
Solution: Verify you're using the correct Graph API version (v18.0 or later) and that conversation IDs are properly referenced using
[[conversation_id]]
No conversations retrieved:
-
Cause: Your page may not have recent conversations, or permissions are insufficient
-
Solution: Ensure your app has
pages_messaging and pages_read_engagement permissions, and send a test message to your page
Airtable Connection Problems
Error: "Authentication failed"
-
Cause: Invalid Personal Access Token or insufficient permissions
-
Solution: Generate a new token with full data access permissions for your base
No records returned:
-
Cause: Incorrect Base ID, Table Name, or empty table
-
Solution: Double-check your Base ID from the Airtable API documentation and ensure your table name matches exactly (case-sensitive)
Missing product fields:
-
Cause: Field names in Airtable don't match what the AI expects
-
Solution: Standardize your Airtable fields to include: "Product Name", "Description", "Price", and "Availability"
OpenAI API Errors
Error: "Rate limit exceeded"
-
Cause: Too many requests to OpenAI in a short period
-
Solution: Increase your schedule interval or upgrade your OpenAI plan
Error: "Insufficient credits"
-
Cause: Your OpenAI account has run out of credits
-
Solution: Add credits to your OpenAI account at platform.openai.com/account/billing
Poor product matching:
-
Cause: The AI prompt needs refinement or your product descriptions are unclear
-
Solution: Enhance your prompt with examples of good matches, and improve product descriptions in Airtable to be more detailed and keyword-rich
Google Sheets Logging Issues
Error: "Permission denied"
-
Cause: TaskAGI doesn't have write access to your Google Sheet
-
Solution: Re-authorize the Google Sheets integration and ensure the sheet is shared with the service account email
Rows not appending:
-
Cause: Incorrect sheet URL or sheet name
-
Solution: Use the full Google Sheets URL including the sheet ID, and verify the sheet name matches exactly
Workflow Logic Issues
Duplicate replies sent:
-
Cause: The validation function isn't properly tracking which messages have been processed
-
Solution: Enhance the Extract & Validate Message function to check message timestamps and only process messages from the last hour that haven't received a reply
Messages skipped:
-
Cause: Validation logic is too strict
-
Solution: Review your validation criteria and temporarily log all messages (valid and invalid) to understand what