Exact request sent to the run panel.
{
"source": "retrieve",
"template": {
"id": "bulk_x_dm",
"slug": "bulk-x-dm",
"name": "Bulk X/Twitter DM Sender",
"categoryId": "SOCIAL_SCALE"
},
"inputs": {
"sheetUrl": "",
"messageGoal": "networking",
"messageTemplate": "",
"__inputSource": "sheet"
},
"agentHint": "You are sending bulk X/Twitter DMs. Adapt completely to the actual UI you encounter.\n\n**TASK CONFIGURATION:**\n- Sheet URL: \n- Message Goal: networking\n- Message Template: \n\n---\n\n## STEP 1: LOAD SHEET DATA\n\n1. Navigate to \n2. Read all rows\n3. **Expected columns:**\n - profile_url (REQUIRED)\n - name (optional)\n - message_text (optional - overrides generation)\n - context (optional)\n4. Count valid rows for progress tracking\n\n---\n\n## STEP 2: PROCESS EACH ROW\n\nFor each valid row:\n\n### A. NAVIGATE TO PROFILE\n1. Go to the X profile_url from this row\n2. Wait for profile to fully load\n3. **Check profile status:**\n - Profile exists? If not, log and continue\n - Protected account? Note for DM access\n - Account suspended? Log and continue\n\n### B. CHECK DM AVAILABILITY - CRITICAL\n**X DMs are often closed. Check carefully:**\n1. Look for message/DM icon or option on profile\n2. **Possible states:**\n - DMs open: Message button/icon visible and clickable\n - DMs closed: No message option (very common)\n - Following required: May need to follow first\n - Protected: Requires follow approval first\n3. **If DMs not available:**\n - Log \"DMs closed\" with username\n - Continue to next profile immediately\n - This is EXPECTED for many accounts\n\n### C. ANALYZE THEIR PROFILE (if DMs open)\n**Gather context:**\n- Display name and handle\n- Bio content\n- Recent tweets (themes, topics, tone)\n- Pinned tweet\n- Follower count\n\n### D. PREPARE MESSAGE\n\n**IF message_text column has content:**\nUse it exactly.\n\n**VALIDATION:**\n- X DMs have 10,000 char limit but shorter is better\n- Optimal: 2-4 sentences, under 500 chars\n- If over reasonable length: Consider truncating or warn\n\n**ELSE generate message:**\n- Goal: networking\n- Template: \"\"\n- Row context: [if provided]\n- Profile personalization required\n\n**X DM culture:**\n- Be DIRECT - X users value brevity\n- Reference their tweets/work specifically\n- One clear purpose per message\n- Don't be formal/corporate\n- Get to the point in first sentence\n\n### E. SEND MESSAGE\n1. Access DM composer\n2. Enter message\n3. Send\n4. Verify message appears in conversation\n5. Log result\n\n### F. RATE LIMITING\n- Wait 30-60 seconds between DMs\n- X has rate limits on DM sends\n- **If rate limited:** Pause, report progress, wait or stop\n\n---\n\n## STEP 3: GENERATE COMPLETION REPORT\n\n```json\n{\n \"totalRows\": <number>,\n \"processed\": <number>,\n \"sent\": <number>,\n \"dmsClosed\": <number>,\n \"protectedAccounts\": <number>,\n \"failed\": <number>,\n \"results\": [\n {\n \"rowIndex\": <number>,\n \"profileUrl\": \"\",\n \"username\": \"\",\n \"dmsOpen\": true|false,\n \"isProtected\": false,\n \"messageSource\": \"sheet|generated\",\n \"messagePreview\": \"\",\n \"characterCount\": <number>,\n \"status\": \"sent|dms_closed|protected|not_found|failed\",\n \"error\": \"\"\n }\n ]\n}\n```\n\n---\n\n## IMPORTANT: EXPECT HIGH SKIP RATE\n\n**Many X accounts have DMs closed.**\n- This is normal, not an error\n- Skip rate of 50%+ is common\n- Track dmsClosed count for user\n- Don't treat closed DMs as failures",
"userInput": "You are sending bulk X/Twitter DMs. Adapt completely to the actual UI you encounter.\n\n**TASK CONFIGURATION:**\n- Sheet URL: \n- Message Goal: networking\n- Message Template: \n\n---\n\n## STEP 1: LOAD SHEET DATA\n\n1. Navigate to \n2. Read all rows\n3. **Expected columns:**\n - profile_url (REQUIRED)\n - name (optional)\n - message_text (optional - overrides generation)\n - context (optional)\n4. Count valid rows for progress tracking\n\n---\n\n## STEP 2: PROCESS EACH ROW\n\nFor each valid row:\n\n### A. NAVIGATE TO PROFILE\n1. Go to the X profile_url from this row\n2. Wait for profile to fully load\n3. **Check profile status:**\n - Profile exists? If not, log and continue\n - Protected account? Note for DM access\n - Account suspended? Log and continue\n\n### B. CHECK DM AVAILABILITY - CRITICAL\n**X DMs are often closed. Check carefully:**\n1. Look for message/DM icon or option on profile\n2. **Possible states:**\n - DMs open: Message button/icon visible and clickable\n - DMs closed: No message option (very common)\n - Following required: May need to follow first\n - Protected: Requires follow approval first\n3. **If DMs not available:**\n - Log \"DMs closed\" with username\n - Continue to next profile immediately\n - This is EXPECTED for many accounts\n\n### C. ANALYZE THEIR PROFILE (if DMs open)\n**Gather context:**\n- Display name and handle\n- Bio content\n- Recent tweets (themes, topics, tone)\n- Pinned tweet\n- Follower count\n\n### D. PREPARE MESSAGE\n\n**IF message_text column has content:**\nUse it exactly.\n\n**VALIDATION:**\n- X DMs have 10,000 char limit but shorter is better\n- Optimal: 2-4 sentences, under 500 chars\n- If over reasonable length: Consider truncating or warn\n\n**ELSE generate message:**\n- Goal: networking\n- Template: \"\"\n- Row context: [if provided]\n- Profile personalization required\n\n**X DM culture:**\n- Be DIRECT - X users value brevity\n- Reference their tweets/work specifically\n- One clear purpose per message\n- Don't be formal/corporate\n- Get to the point in first sentence\n\n### E. SEND MESSAGE\n1. Access DM composer\n2. Enter message\n3. Send\n4. Verify message appears in conversation\n5. Log result\n\n### F. RATE LIMITING\n- Wait 30-60 seconds between DMs\n- X has rate limits on DM sends\n- **If rate limited:** Pause, report progress, wait or stop\n\n---\n\n## STEP 3: GENERATE COMPLETION REPORT\n\n```json\n{\n \"totalRows\": <number>,\n \"processed\": <number>,\n \"sent\": <number>,\n \"dmsClosed\": <number>,\n \"protectedAccounts\": <number>,\n \"failed\": <number>,\n \"results\": [\n {\n \"rowIndex\": <number>,\n \"profileUrl\": \"\",\n \"username\": \"\",\n \"dmsOpen\": true|false,\n \"isProtected\": false,\n \"messageSource\": \"sheet|generated\",\n \"messagePreview\": \"\",\n \"characterCount\": <number>,\n \"status\": \"sent|dms_closed|protected|not_found|failed\",\n \"error\": \"\"\n }\n ]\n}\n```\n\n---\n\n## IMPORTANT: EXPECT HIGH SKIP RATE\n\n**Many X accounts have DMs closed.**\n- This is normal, not an error\n- Skip rate of 50%+ is common\n- Track dmsClosed count for user\n- Don't treat closed DMs as failures",
"urls": [],
"meta": {
"createdAt": "",
"userAgent": ""
},
"execution": {
"mode": "device",
"deviceIds": []
}
}