CRM Complete Batch - Full Personality Analysis
Process up to 10 profiles concurrently with complete personality analysis including OCEAN, MBTI, and buyer playbooks.
When to Use
See the consolidated guidance: When to Use Each Batch Endpoint
Endpoint Details
| Property | Value |
|---|---|
| Endpoint | POST /crm_batch |
| Cost | 2 credits × number of profiles |
| Max Profiles | 10 per request |
| Tier Required | Complete |
| Processing Time | ~8-10 seconds for 5 profiles |
Overview
The CRM Complete Batch endpoint provides comprehensive personality analysis for multiple profiles simultaneously, including OCEAN scores, MBTI types, and detailed buyer playbooks. You only pay for successfully analyzed profiles.
Key Features
- ✅ Concurrent Processing: Up to 10 profiles analyzed simultaneously
- ✅ Pay-per-Success: Only charged for successfully analyzed profiles
- ✅ Time Efficient: ~65% faster than sequential single requests
- ✅ Complete Analysis: OCEAN, MBTI, buyer manual, impact language, and more
Request
Headers
| Header | Required | Value |
|---|---|---|
Content-Type | Yes | application/json |
x-api-key | Yes | Your API key |
Request Body
{
"profiles": [
{
"primeiro_nome": "Satya",
"ultimo_nome": "Nadella",
"empresa": "Microsoft",
"contexto_adicional": "Optional context"
},
{
"primeiro_nome": "Sundar",
"ultimo_nome": "Pichai",
"empresa": "Google"
}
]
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
profiles | array | Yes | Array of profile objects (max 10) |
profiles[].primeiro_nome | string | Yes | First name |
profiles[].ultimo_nome | string | Yes | Last name |
profiles[].empresa | string | Yes | Company name |
profiles[].contexto_adicional | string | No | Additional context |
Example Request
cURL
curl -X POST "https://api.fluenceinsights.com/crm_batch" \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key-here" \
-d '{
"profiles": [
{"primeiro_nome": "Satya", "ultimo_nome": "Nadella", "empresa": "Microsoft"},
{"primeiro_nome": "Sundar", "ultimo_nome": "Pichai", "empresa": "Google"}
]
}'
Python
import requests
API_URL = "https://api.fluenceinsights.com/crm_batch"
API_KEY = "your-api-key-here"
profiles = [
{"primeiro_nome": "Satya", "ultimo_nome": "Nadella", "empresa": "Microsoft"},
{"primeiro_nome": "Sundar", "ultimo_nome": "Pichai", "empresa": "Google"},
{"primeiro_nome": "Tim", "ultimo_nome": "Cook", "empresa": "Apple"}
]
response = requests.post(
API_URL,
headers={
"Content-Type": "application/json",
"x-api-key": API_KEY
},
json={"profiles": profiles}
)
if response.status_code == 200:
data = response.json()
summary = data['batch_summary']
print(f"✅ Processed {summary['successful']}/{summary['total_profiles']} profiles")
print(f"⚡ Time: {summary['processing_time_ms']/1000:.1f}s")
print(f"💰 Credits: {data['billing_info']['creditos_utilizados']}")
# Access personality insights
for result in data['results']:
if result['success']:
analise = result['analise']
print(f"\n{result['input']['primeiro_nome']} {result['input']['ultimo_nome']}:")
print(f" MBTI: {analise['mbti']['tipo']}")
print(f" Openness: {analise['ocean']['openness']:.1f}")
else:
print(f"❌ Error: {response.json()}")
JavaScript/Node.js
const axios = require('axios');
const API_URL = 'https://api.fluenceinsights.com/crm_batch';
const API_KEY = 'your-api-key-here';
async function analyzeBatch() {
const profiles = [
{ primeiro_nome: 'Satya', ultimo_nome: 'Nadella', empresa: 'Microsoft' },
{ primeiro_nome: 'Sundar', ultimo_nome: 'Pichai', empresa: 'Google' }
];
try {
const response = await axios.post(
API_URL,
{ profiles },
{
headers: {
'Content-Type': 'application/json',
'x-api-key': API_KEY
}
}
);
const { batch_summary, results, billing_info } = response.data;
console.log(`✅ ${batch_summary.successful}/${batch_summary.total_profiles} profiles`);
console.log(`💰 Credits: ${billing_info.creditos_utilizados}`);
results.forEach(result => {
if (result.success) {
const { analise, input } = result;
console.log(`\n${input.primeiro_nome}: ${analise.mbti.tipo}`);
}
});
} catch (error) {
console.error('❌ Error:', error.response?.data || error.message);
}
}
analyzeBatch();
Response
Success Response (200)
{
"success": true,
"batch_summary": {
"total_profiles": 2,
"successful": 2,
"failed": 0,
"processing_time_ms": 5234.67
},
"results": [
{
"success": true,
"profile_index": 0,
"input": {
"primeiro_nome": "Satya",
"ultimo_nome": "Nadella",
"empresa": "Microsoft"
},
"analise": {
"cargo": "Chairman and CEO",
"tipo_stakeholder": "C-Level Executive",
"ocean": {
"openness": 8.5,
"conscientiousness": 9.0,
"extraversion": 7.5,
"agreeableness": 8.0,
"neuroticism": 3.0
},
"mbti": {
"tipo": "ENTJ",
"descricao": "The Commander - Strategic, ambitious, natural leader",
"pontos_fortes": [
"Strategic thinking",
"Decisive leadership",
"Innovation focus"
],
"comunicacao_preferida": "Direct, goal-oriented, data-driven"
},
"manual_comprador": {
"dores": [
"Digital transformation challenges",
"Cloud migration complexity",
"Competitive market pressure"
],
"ganhos_procurados": [
"Innovation acceleration",
"Market leadership",
"Business growth"
],
"prioridades": [
"Technology innovation",
"Customer success",
"Organizational culture"
]
},
"linguagem_impacto": [
"Innovation drives growth",
"Empowering transformation",
"Customer-first approach"
]
}
},
{
"success": true,
"profile_index": 1,
"input": {
"primeiro_nome": "Sundar",
"ultimo_nome": "Pichai",
"empresa": "Google"
},
"analise": {
"cargo": "CEO",
"tipo_stakeholder": "C-Level Executive",
"ocean": {...},
"mbti": {...},
"manual_comprador": {...},
"linguagem_impacto": [...]
}
}
],
"billing_info": {
"creditos_por_perfil": 2,
"perfis_processados": 2,
"creditos_utilizados": 4,
"creditos_restantes": 196,
"tipo_plano": "complete"
}
}
Complete Tier Analysis Fields
| Field | Type | Description |
|---|---|---|
cargo | string | Current position/title |
tipo_stakeholder | string | Stakeholder classification |
ocean | object | OCEAN personality scores (0-10) |
ocean.openness | float | Openness to experience |
ocean.conscientiousness | float | Conscientiousness level |
ocean.extraversion | float | Extraversion level |
ocean.agreeableness | float | Agreeableness level |
ocean.neuroticism | float | Neuroticism level |
mbti | object | MBTI personality type |
mbti.tipo | string | 4-letter MBTI type (e.g., ENTJ) |
mbti.descricao | string | Personality description |
mbti.pontos_fortes | array | Key strengths |
mbti.comunicacao_preferida | string | Preferred communication style |
manual_comprador | object | Buyer playbook |
manual_comprador.dores | array | Pain points |
manual_comprador.ganhos_procurados | array | Desired gains |
manual_comprador.prioridades | array | Top priorities |
linguagem_impacto | array | Impact language phrases |
Error Responses
Insufficient Credits (402)
{
"error": "Insufficient credits",
"message": "Batch requires 20 credits but you have 15",
"profiles_requested": 10,
"credits_per_profile": 2,
"credits_available": 15
}
Batch Size Exceeded (400)
{
"error": "Batch size exceeds maximum",
"message": "Maximum 10 profiles per batch, received 15",
"max_batch_size": 10,
"profiles_received": 15
}
Partial Batch Failure (200)
{
"success": true,
"batch_summary": {
"total_profiles": 3,
"successful": 2,
"failed": 1
},
"results": [
{
"success": true,
"profile_index": 0,
"analise": {...}
},
{
"success": false,
"profile_index": 1,
"input": {"primeiro_nome": "John", "empresa": "Unknown"},
"error": "Profile not found",
"error_code": "PROFILE_NOT_FOUND"
},
{
"success": true,
"profile_index": 2,
"analise": {...}
}
],
"billing_info": {
"creditos_utilizados": 4
}
}
Credit Calculation
| Scenario | Calculation | Total Credits |
|---|---|---|
| 5 profiles, all successful | 2 × 5 | 10 credits |
| 10 profiles, all successful | 2 × 10 | 20 credits |
| 10 profiles, 8 successful | 2 × 8 | 16 credits |
Note: You are only charged for successfully analyzed profiles. Failed analyses do not consume credits.
Performance Benchmarks
| Profiles | Single Requests | Batch Request | Time Saved |
|---|---|---|---|
| 5 profiles | ~20-25 sec | ~8-10 sec | 60% faster |
| 10 profiles | ~40-50 sec | ~15-20 sec | 65% faster |
Use Cases
Sales Intelligence
def build_sales_intelligence(prospects):
"""Analyze prospects for sales team"""
batch_size = 10
enriched_prospects = []
for i in range(0, len(prospects), batch_size):
batch = prospects[i:i + batch_size]
response = requests.post(API_URL, json={"profiles": batch}, headers=headers)
if response.status_code == 200:
for result in response.json()['results']:
if result['success']:
enriched_prospects.append({
'name': f"{result['input']['primeiro_nome']} {result['input']['ultimo_nome']}",
'company': result['input']['empresa'],
'mbti': result['analise']['mbti']['tipo'],
'communication_style': result['analise']['mbti']['comunicacao_preferida'],
'pain_points': result['analise']['manual_comprador']['dores']
})
return enriched_prospects
Personality-Based Segmentation
def segment_by_personality(batch_results):
"""Segment contacts by MBTI type"""
segments = {}
for result in batch_results['results']:
if result['success']:
mbti = result['analise']['mbti']['tipo']
if mbti not in segments:
segments[mbti] = []
segments[mbti].append(result)
return segments
Best Practices
1. Batch Size Optimization
- Recommended: 10 profiles per batch (maximum)
- For large datasets: Process in sequential batches of 10
- Add delays: 0.5-1s between batches for large-scale processing
2. Credit Management
# Verify sufficient credits before batch processing
credits_needed = len(profiles) * 2 # 2 credits per profile
current_credits = check_credits(API_KEY)
if current_credits < credits_needed:
print(f"⚠️ Insufficient credits: {current_credits} available, {credits_needed} needed")
else:
process_batch(profiles)
3. Processing Large Datasets
def process_large_dataset(profiles, batch_size=10):
"""Process large datasets in optimized batches"""
results = []
total_credits = 0
for i in range(0, len(profiles), batch_size):
batch = profiles[i:i + batch_size]
response = requests.post(API_URL, json={"profiles": batch}, headers=headers)
if response.status_code == 200:
data = response.json()
results.extend(data['results'])
total_credits += data['billing_info']['creditos_utilizados']
print(f"Progress: {min(i + batch_size, len(profiles))}/{len(profiles)}")
print(f"Credits used: {total_credits}")
time.sleep(0.5) # Rate limiting
return results, total_credits
When to Use This Endpoint
✅ Use CRM Complete Batch When:
- Need full personality insights for multiple profiles
- Building personality-based sales strategies
- Segmenting contacts by communication preferences
- Analyzing team dynamics at scale
- Processing 2-10 profiles at once
❌ Use Single Endpoint When:
- Analyzing only 1 profile
- Real-time interactive analysis needed
- Immediate feedback required
Comparison with Other Tiers
| Feature | Basic Batch | Complete Batch | Plus Batch |
|---|---|---|---|
| Credits per profile | 1 | 2 | 3 |
| OCEAN scores | ❌ | ✅ | ✅ |
| MBTI type | ❌ | ✅ | ✅ |
| Buyer playbook | Basic | Complete | Complete |
| AI insights | ❌ | ❌ | ✅ |
| Processing time | ~8-10s | ~8-10s | ~15-25s |