Loading...
Loading...
Compare original and translation side by side
.json.jsonsk_live_...AuthorizationBearer sk_live_...Personize API Keysk_live_...AuthorizationBearer sk_live_...Personize API Keyhttps://agent.personize.aiAuthorization: Bearer sk_live_...| Action | Method | Path | Use Case |
|---|---|---|---|
| Batch sync in (structured + AI) | POST | | Sync CRM records into Personize with per-property AI control |
| Single memorize (AI) | POST | | Store one content item with AI extraction + vectors |
| Structured upsert | POST | | Store properties without AI extraction |
| Semantic search | POST | | Search memories by meaning |
| Export/filter records | POST | | Query records by property conditions |
| Entity context digest | POST | | Get compiled context for an entity |
| Smart context | POST | | Get relevant variables for a message |
| Auth check | GET | | Verify key and read plan limits |
https://agent.personize.aiAuthorization: Bearer sk_live_...| 操作 | 请求方法 | 路径 | 使用场景 |
|---|---|---|---|
| 批量同步入(结构化+AI) | POST | | 将CRM记录同步至Personize,支持按属性的AI控制 |
| 单条记录记忆(AI) | POST | | 存储单个内容项,支持AI提取与向量处理 |
| 结构化更新插入 | POST | | 直接存储属性数据,无需AI提取 |
| 语义搜索 | POST | | 基于语义搜索记忆内容 |
| 记录导出/筛选 | POST | | 根据属性条件查询记录 |
| 实体上下文摘要 | POST | | 获取某一实体的整合上下文信息 |
| 智能上下文 | POST | | 获取消息相关的变量信息 |
| 权限校验 | GET | | 验证密钥有效性并查看套餐限制 |
nodesconnectionssettings{
"name": "Workflow Name",
"nodes": [ /* array of node objects */ ],
"connections": { /* source node name → target connections */ },
"settings": { "executionOrder": "v1" }
}nodesconnectionssettings{
"name": "Workflow Name",
"nodes": [ /* 节点对象数组 */ ],
"connections": { /* 源节点名称 → 目标连接关系 */ },
"settings": { "executionOrder": "v1" }
}Keywords follow RFC 2119: MUST = non-negotiable, SHOULD = strong default (override with stated reasoning), MAY = agent discretion.
connections"settings": { "executionOrder": "v1" }[x, y]"pz-sync-001"关键词遵循RFC 2119规范:MUST = 不可协商,SHOULD = 强默认规则(需说明理由方可覆盖),MAY = 可自主决定
connections"settings": { "executionOrder": "v1" }[x, y]"pz-sync-001"| Node | | |
|---|---|---|
| Schedule Trigger | | |
| Manual Trigger | | |
| Webhook | | |
| HTTP Request | | |
| Loop Over Items | | |
| Code (JavaScript) | | |
| IF | | |
| Set / Edit Fields | | |
| No Operation | | |
| HubSpot | | |
| Salesforce | | |
| Google Sheets | | |
| Slack | | |
| Postgres | | |
| MySQL | | |
| 节点 | | |
|---|---|---|
| 定时触发器 | | |
| 手动触发器 | | |
| Webhook | | |
| HTTP请求 | | |
| 循环处理项 | | |
| 代码(JavaScript) | | |
| 条件判断 | | |
| 设置/编辑字段 | | |
| 无操作 | | |
| HubSpot | | |
| Salesforce | | |
| Google Sheets | | |
| Slack | | |
| Postgres | | |
| MySQL | | |
{
"id": "pz-api-001",
"name": "Personize: Batch Memorize",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [860, 300],
"parameters": {
"method": "POST",
"url": "https://agent.personize.ai/api/v1/batch-memorize",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify($json.payload) }}",
"options": {
"response": { "response": { "fullResponse": true } }
}
},
"credentials": {
"httpHeaderAuth": {
"id": "pz-cred",
"name": "Personize API Key"
}
}
}{
"id": "pz-api-001",
"name": "Personize: Batch Memorize",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [860, 300],
"parameters": {
"method": "POST",
"url": "https://agent.personize.ai/api/v1/batch-memorize",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify($json.payload) }}",
"options": {
"response": { "response": { "fullResponse": true } }
}
},
"credentials": {
"httpHeaderAuth": {
"id": "pz-cred",
"name": "Personize API Key"
}
}
}{{ $json.fieldName }}{{ $('Node Name').item.json.field }}{{ JSON.stringify($json) }}={{ expression }}{{ $json.fieldName }}{{ $('Node Name').item.json.field }}{{ JSON.stringify($json) }}={{ expression }}[Trigger] → [Fetch Records] → [Build Payload] → [Batch Memorize] → [Done][触发器] → [获取记录] → 构建请求体] → [批量记忆] → [完成]batch-memorize{ source, mapping, rows }batch-memorizebatch-memorize{ source, mapping, rows }batch-memorizebatch-memorize// Input: array of source records from previous node
const items = $input.all();
const rows = items.map(item => item.json);
const payload = {
source: 'n8n-sync',
mapping: {
entityType: 'contact',
email: 'email', // source field name containing email
runName: 'n8n-sync-' + Date.now(),
properties: {
// Structured fields — stored directly
email: { sourceField: 'email', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
first_name: { sourceField: 'firstname', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
last_name: { sourceField: 'lastname', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
company: { sourceField: 'company', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
// AI extraction fields — extractMemories: true
notes: {
sourceField: 'notes',
collectionId: 'YOUR_GEN_COL_ID',
collectionName: 'Generated Content',
extractMemories: true,
},
},
},
rows: rows,
chunkSize: 1,
};
return [{ json: { payload } }];YOUR_COL_IDYOUR_GEN_COL_IDGET /api/v1/collectionsclient.collections.list()batch-memorize// 输入:来自上一节点的源记录数组
const items = $input.all();
const rows = items.map(item => item.json);
const payload = {
source: 'n8n-sync',
mapping: {
entityType: 'contact',
email: 'email', // 包含邮箱的源字段名称
runName: 'n8n-sync-' + Date.now(),
properties: {
// 结构化字段 —— 直接存储
email: { sourceField: 'email', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
first_name: { sourceField: 'firstname', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
last_name: { sourceField: 'lastname', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
company: { sourceField: 'company', collectionId: 'YOUR_COL_ID', collectionName: 'Contacts Standard Schema' },
// AI提取字段 —— extractMemories: true
notes: {
sourceField: 'notes',
collectionId: 'YOUR_GEN_COL_ID',
collectionName: 'Generated Content',
extractMemories: true,
},
},
},
rows: rows,
chunkSize: 1,
};
return [{ json: { payload } }];YOUR_COL_IDYOUR_GEN_COL_IDGET /api/v1/collectionsclient.collections.list()extractMemoriesextractMemoriesRule of thumb: Seton free-form text (notes, transcripts, emails). Omit it for structured fields (email, name, dates, counts). See theextractMemories: trueskill'sentity-memoryfor the complete decision table and examples.reference/memorize.md
经验法则: 对于自由格式文本(备注、转录文本、邮件)设置;对于结构化字段(邮箱、姓名、日期、计数)则不设置。完整的决策表及示例请参见extractMemories: true技能的entity-memory文档。reference/memorize.md
[Trigger] → [Export from Personize] → [Loop Over Items] → [Push to Destination] → [Done][触发器] → [从Personize导出] → [循环处理项] → [推送至目标应用] → [完成]return [{
json: {
groups: [{
id: 'g1',
logic: 'AND',
conditions: [
{ property: 'company', operator: 'IS_SET' }
]
}],
type: 'Contact',
returnRecords: true,
pageSize: 100,
includeMemories: false
}
}];return [{
json: {
groups: [{
id: 'g1',
logic: 'AND',
conditions: [
{ property: 'company', operator: 'IS_SET' }
]
}],
type: 'Contact',
returnRecords: true,
pageSize: 100,
includeMemories: false
}
}];| Operator | Description |
|---|---|
| Equals |
| Not equals |
| Contains substring |
| Greater / less than |
| Field has a value |
| Field is empty |
| Value in array |
| 操作符 | 描述 |
|---|---|
| 等于 |
| 不等于 |
| 包含子字符串 |
| 大于 / 小于 |
| 字段有值 |
| 字段为空 |
| 值在数组中 |
[Trigger] → [Fetch Record] → [Smart Digest] → [AI Prompt] → [Push Result]smart-memory-digest[触发器] → [获取记录] → [智能摘要] → [AI提示] → [推送结果]smart-memory-digestconst email = $json.email;
return [{
json: {
email: email,
type: 'Contact',
token_budget: 2000,
include_properties: true,
include_memories: true
}
}];const email = $json.email;
return [{
json: {
email: email,
type: 'Contact',
token_budget: 2000,
include_properties: true,
include_memories: true
}
}];const context = $('Personize: Smart Digest').item.json.data.compiledContext;
const email = $('Personize: Smart Digest').item.json.data.properties?.email || '';
return [{
json: {
prompt: `Using the context below, write a personalized outreach email for ${email}.\n\nContext:\n${context}`,
model: 'claude-sonnet-4-6'
}
}];const context = $('Personize: Smart Digest').item.json.data.compiledContext;
const email = $('Personize: Smart Digest').item.json.data.properties?.email || '';
return [{
json: {
prompt: `使用以下上下文,为${email}撰写一封个性化的开发信。\n\n上下文:\n${context}`,
model: 'claude-sonnet-4-6'
}
}];[Webhook] → [Transform] → [Memorize Pro] → [Respond][Webhook] → [转换数据] → [高级记忆] → [响应]{
"id": "pz-webhook-001",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [200, 300],
"parameters": {
"path": "personize-ingest",
"httpMethod": "POST",
"responseMode": "lastNode"
}
}{
"id": "pz-webhook-001",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [200, 300],
"parameters": {
"path": "personize-ingest",
"httpMethod": "POST",
"responseMode": "lastNode"
}
}const data = $json.body || $json;
return [{
json: {
content: `Name: ${data.name}\nEmail: ${data.email}\nCompany: ${data.company}\nNotes: ${data.notes || ''}`,
speaker: data.source || 'webhook',
enhanced: true,
tags: ['webhook', 'real-time'],
email: data.email
}
}];const data = $json.body || $json;
return [{
json: {
content: `Name: ${data.name}\nEmail: ${data.email}\nCompany: ${data.company}\nNotes: ${data.notes || ''}`,
speaker: data.source || 'webhook',
enhanced: true,
tags: ['webhook', 'real-time'],
email: data.email
}
}];{
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 60000
}{
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 60000
}n8n-nodes-base.wait{
"id": "pz-wait-001",
"name": "Rate Limit Wait",
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [1080, 300],
"parameters": {
"amount": 62,
"unit": "seconds"
}
}GET /api/v1/men8n-nodes-base.wait{
"id": "pz-wait-001",
"name": "速率限制等待",
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [1080, 300],
"parameters": {
"amount": 62,
"unit": "seconds"
}
}GET /api/v1/mebatch-memorizememorize_proexportrecall_prosmart-memory-digestbatch-memorizememorize_proexportrecall_prosmart-memory-digestextractMemories: trueextractMemories: truetemplates/templates/retryOnFail: true{{ $json.success }}retryOnFail: true{{ $json.success }}.jsonAuthorization: Bearer sk_live_....jsonAuthorization: Bearer sk_live_...templates/| Template | File | Description |
|---|---|---|
| HubSpot → Personize | | Sync HubSpot contacts into Personize memory |
| Personize → Slack | | Export records and post digest to Slack channel |
| Webhook → Personize | | Real-time ingest from any webhook source |
| Google Sheets → Personize | | Batch import rows from a Google Sheet |
templates/| 模板 | 文件 | 描述 |
|---|---|---|
| HubSpot → Personize | | 将HubSpot联系人同步至Personize记忆库 |
| Personize → Slack | | 导出记录并将摘要发布至Slack频道 |
| Webhook → Personize | | 从任意Webhook源实时摄取数据 |
| Google Sheets → Personize | | 批量导入Google Sheet中的行数据 |
| Category | Apps |
|---|---|
| CRM | HubSpot, Salesforce, Pipedrive, Zoho CRM |
| Spreadsheets | Google Sheets, Airtable, Microsoft Excel |
| Communication | Slack, Microsoft Teams, Discord, Telegram, Email (SMTP/IMAP) |
| Project Mgmt | Jira, Asana, Trello, Monday.com, Notion, Linear |
| Databases | Postgres, MySQL, MongoDB, Redis |
| Dev Tools | GitHub, GitLab |
| Marketing | Mailchimp, SendGrid, ActiveCampaign |
| E-Commerce | Shopify, Stripe, WooCommerce |
| Cloud | AWS S3/SES/Lambda, Google Cloud |
| AI | OpenAI, Anthropic Claude, Google Gemini |
| 类别 | 应用 |
|---|---|
| CRM | HubSpot、Salesforce、Pipedrive、Zoho CRM |
| 电子表格 | Google Sheets、Airtable、Microsoft Excel |
| 通讯工具 | Slack、Microsoft Teams、Discord、Telegram、邮件(SMTP/IMAP) |
| 项目管理 | Jira、Asana、Trello、Monday.com、Notion、Linear |
| 数据库 | Postgres、MySQL、MongoDB、Redis |
| 开发工具 | GitHub、GitLab |
| 营销工具 | Mailchimp、SendGrid、ActiveCampaign |
| 电商平台 | Shopify、Stripe、WooCommerce |
| 云服务 | AWS S3/SES/Lambda、Google Cloud |
| AI服务 | OpenAI、Anthropic Claude、Google Gemini |