📡
TG拓客后台 加载中…

TG 拓客后台

养号 · 群发 · 客服 一体化

{{ login.msg }}

总览

{{stat.total}}
总号数
{{stat.online}}
在线号
{{stat.banned}}
异常/封禁
{{stat.groups}}
累计群数
{{stat.unread}}
未读私聊
{{stat.tasks}}
运行中任务

最近私聊会话

账号客户最新消息状态
{{accName(c.account_id)}}{{c.peer_name||c.peer_id}}{{c.last_msg}}{{c.status}}
暂无会话

号池管理

🖥 服务器: 🟢 在线 {{accSys.online_conn||0}} / {{accs.length}} 个号 内存 {{accSys.mem?accSys.mem.MemAvailable:0}}M 可用 / {{accSys.mem?(accSys.mem.MemTotal+accSys.mem.SwapTotal):0}}M (含磁盘swap{{accSys.mem?accSys.mem.SwapTotal:0}}M) swap 空闲 {{accSys.mem?accSys.mem.SwapFree:0}}M 🎙 语音中 {{voiceCount}} 个号 ⚠️ 内存吃紧, 建议下线几个号 {{accOnlineProg.msg}}
👈 先在号列表左边☐勾选号(勾选框已默认显示), 再点这里批量上下线
行首圆形=该号TG真实头像 · 名字=TG真实名 ⚠️ 部分失败 👤 员工: 选员工后: 号池/群管理/客服 都只显示该员工的号
☑ 批量: 已选 {{accSel.length}} 个 (点"批量操作面板"展开全部批量工具)
🌐 线路: ⚠️ {{ipWarn}} {{l.name}} {{l.ok?'🟢':'🔴'}} {{l.ok?(l.ip+' · '+l.ms+'ms'):'失效'}}
🔍 筛选:
📥 批量导入买号(支持自动接码登入) 📄 下载号码格式模板
导入到组: 格式: 号码 / 号码----接码API / 号码----接码API----2FA密码
{{r.ok?'✅':'❌'}} 第{{r.line}}行 {{r.phone||''}} — {{r.msg}}
📄 导入协议号(.session文件):

上传 Telethon 协议号 .session 文件直接接管该号(免验证码); 文件存服务器, 之后可随时点[上线]

{{avTxt(a)}}
{{a.seq!=null?a.seq:a.id}}{{a.tg_id||''}}{{a.name||a.tg_name||a.phone}}
{{a.phone}} · {{a.device||'无指纹'}}
🎙 语音中 已挂 {{fmtDur(voiceLive[a.id])}}
{{statusText(a)}} {{lineName(a.proxy_port)}} {{a.owner||'未分组'}}
今日 {{a.total_sent}}/{{a.daily_limit}}
序号档案ID手机号备注👤分组状态接码代理阶段今日已发操作
还没有号码, 先添加

📁 账号分组管理 号池/群管理/客服/任务 都按这个分组区分显示

每号尾部[移→]可单移 · 或点每行前☑勾选多号批量移
👤 {{grp.name==''?'未分组':grp.name}}({{grp.accs.length}}个号)
{{a.name||a.phone}} {{a.status=='online'?'🟢在线':(a.status=='banned'?'🔴封':(a.status=='error'?'⚠️异常':'⚪离线'))}}
(空组)

群管理 (手动分类 + 文件夹管理)

📁 文件夹链接导入(自动加入群并按文件夹分类) ❓ 怎么拿文件夹链接?
📁 文件夹: {{folderInfo.name}} · 共 {{folderInfo.total}} 个群
预览: {{folderInfo.sample.map(x=>x.title).join('、').slice(0,150)}}...
💡 Telegram App → 聊天文件夹(设置里) → 建文件夹装一批群 → 点文件夹右侧"···" → 分享文件夹链接 → 复制链接贴上面
👤 员工: 📱 账号: {{gFilter.acc?('当前空间: '+accName(gFilter.acc)):'未选账号=全部并集(选具体账号后彻底隔离)'}}
📁 文件夹: ⓘ 计数=不同群ID{{gSum.total_records&&gSum.total_records!=gSum.total?(' · 明细'+gSum.total_records+'条'):''}}
管理空间: {{accName(gFilter.acc)}} (只影响该账号, 别的号文件夹不受干扰)
➕ 新建文件夹: 📁{{f.name}}({{f.count}})
改名=整组群一起改 · 删除=群移回未分组 · 空文件夹也能建(先建好再往里面加群)
🔀 合并文件夹: 把 的群全部并入 合并后源文件夹自动删除 · 想合出新名字? 先[改名]再合并
🏷️ 分类:
☑️ 已选 {{selMoveIds.length}} 个群
群名文件夹分类{{gUniq?'加入的号':'账号'}}人数操作
{{g.title}} @{{g.username}} 🚫黑 {{g.folder||'(未分组)'}} ✎ {{f.name}} 取消 {{g.category}} ✕ {{accName(g.account_id)}} {{g.acc_count}}个号 {{gExpanded[g.tg_group_id]?'▴':'▾'}}
{{(g.acc_names||[]).join(' · ')}}
{{g.members}}
没有符合条件的群

发消息 (手动投放, 素材库一键选用)

① 账号: (只列在线号, 下拉灰色=离线)
② 目标群: 📁按文件夹批量: {{f.name}}({{f.count}})
🏷 按分类: {{c}}
已选 {{selSendGroups.length}} 个 清空
{{g.title}}({{g.members}}人) 无群可选: 先在群管理同步/加入群
③ 内容:
📦 素材库快速选用:
{{t.name}} (该分类暂无素材 → 去📦素材库添加)
防封: 群间随机间隔4~12秒 · 黑名单群自动跳过 · 一次最多200群
✍️ 文案变化(可选,防重): 默认不勾=原样发送 · 勾了=每条发送前随机变(素材里写 {称呼} {数字} 才替换)
{{l}}

素材库 (文案 + 账号头像/名称资料)

📤 上传头像: jpg/png/webp · 建议正方形 · 分类与文案共用
{{av.category}}
还没有头像素材, 先上传
📄 上传名称: 每行一个名字(支持粘贴或文件内容)
{{n.value}} {{n.category}} ✕
还没有名称素材
📦 素材文件夹:
改名: 删除分类: {{f.name}}({{f.count}}) ✕删 删除=素材移回通用(不删素材)
✏️ 制作广告(单条): 归入:
提示: 先点上方文件夹进入, 自动归入该文件夹; 制作时也可下拉改归属
📤 批量上传(txt): 上传到分类: 📄 下载格式模板

📋 格式: 一行 = 一条广告文案; # 注释行/空行忽略 · 群发时默认按行随机循环, 不会一次性发同一句

📊 上传结果 · {{upResult.file}} → 分类[{{upResult.category}}]
✅ 入库 {{upResult.data.ok}} 条 ⏭️ 跳过 {{upResult.data.skip}} 行(空行/注释) ✂️ {{upResult.data.truncated}} 行超长被截(第{{upResult.data.trunc_rows.join('、')}}行) 没有内容入库, 检查文件
已入库素材名: {{n}}…等{{upResult.data.ok}}条
☑️ 已选 {{selMatIds.length}} 条素材
ID名称分类内容预览使用状态操作
{{t.id}}{{t.name}}{{t.category}}{{(t.content||'').slice(0,55)}}{{t.use_count}}{{t.is_active?'🟢':'⏸️'}}
{{tmplFilter?'该文件夹还没有素材: 上面制作/上传一条吧':'还没有素材'}}

任务中心

👤 员工: 选员工后只看该员工账号的任务

新建群发

选择账号: {{a.name||a.phone}}
📝 任务名称: {{selAccs.length?('选'+selAccs.length+'个号'):'先勾选执行账号自动取名'}}
选择目标群:共 {{gAll.length}} 群 · 已选账号{{selAccs.length?'':'后下方只显示这些号的群'}} · 已选 {{selGroups.length}}
👆 先点上方账号标签勾选执行账号 → 下方只显示这几个号的群(其他号的文件夹/群不显示)
{{g.title}}({{g.members}}人){{accName(g.account_id)}} 所选账号暂无群 → 到[群管理]或手机加群后同步
发送模式:
📦 素材文件夹: 点文件夹只看该分类素材
素材分类快捷选(自动勾选+同名群联动): 勾选分类素材;同名文件夹群自动联动勾选(素材分类=群文件夹名即匹配)
勾选素材(可多选):已选 {{selTmpls.length}} 条 · 可先去[📦素材库]建分类素材
[{{t.category}}] {{t.name}} {{taskMatCat?'该文件夹暂无素材 → 去[📦素材库]该分类添加':'素材库为空 → 先到 📦 素材库 页添加几条'}}
固定内容:
📂 按号文件夹/全群快捷选: 只列已选号的文件夹 · 没分文件夹的号 → 选"[全部] 该号"即勾它所有群
间隔 ~秒 每日上限 条
🔁 循环: 分钟一轮 共跑 轮(0=无限,可手动停)
⏰ 启动方式: 到点系统自动启动(单次, 不提醒) · 排程后可改期/取消
✍️ 文案变化(可选,防重): 素材里写 {称呼} {数字} 才会替换 · 勾了=每条发送前随机变(有的加有的不加)
💡 预计总时长自动计算: 群数×间隔。循环任务跑完一轮自动等下一轮, 任务记录里随时看实时日志和逐条明细

新建养号任务

选择账号: {{a.name||a.phone}}
共 {{tasks.length}} 条任务记录
ID标题状态进度预计/已用时间操作
暂无任务

💬 炒群养号 (号池账号在指定群互动 · 一个号一个角色 · 只在自己号之间互动)

① 角色库 (每个角色一套话术; 互动时只从该角色话术里随机挑)
角色话术条数话术预览操作
{{r.name}} {{r.count}} 条 {{(r.scripts||'').split('\n').filter(x=>x.trim()).slice(0,2).join(' / ')||'(还没话术)'}}
还没有角色 → 点右上角[✨建默认角色]
编辑角色「{{actEditing.name}}」的话术 每行一条, 支持 {号名} 变量
当前 {{actScripts.split('\n').filter(x=>x.trim()).length}} 条
② 号分配角色 (一个号一个角色; 禁言的号不参与炒群)
号角色状态禁言
{{a.seq}} {{a.name||a.phone}} {{a.status=='online'?'🟢在线':'⚪'+a.status}}
③ 互动群 (号在里面炒群; 增删群时号自动进/退)
互动群状态操作
{{g.title||g.chat}} {{g.chat.slice(0,40)}} {{g.enabled?'🟢启用':'⚪停用'}}
还没有互动群 → 添加一个(或用[🆕新建养号群])
④ 炒群控制
{{actStatus.running?'🟢炒群运行中':'⚪已停止'}}
对话长度: 话题: 波次间隔(分): ~ 每号每天上限:
发言时段: - (不填=全天可发)
⑤ 今日统计
今日炒群消息: {{actStatus.today_act||0}} 条 互动群: {{actStatus.groups||0}} 个 已分配角色的号: {{actByRole.T}} 个 角色分布: {{actByRole.txt}}
⑥ 监听群 (听真人怎么聊 → 提取话术 → 炒群用真话)
扫描结果(点群名加入监听)
+ {{g.title}} ({{g.members}}人 · 号{{g.account.slice(-4)}})
监听群已收消息操作
{{g.title}} {{g.msgs}} 条
还没有监听群 → 输入 @用户名/链接 添加, 或点[🔍扫号所在群]
⏰ 自动任务(不占资源, 凌晨低峰跑): 04:30 自动把真人话术分类导入角色 · 05:00 自动清理(每群留最新3000条消息/话术日志留30天)
⚡ 也可以随时点[立即提取话术]手动跑 (约1秒, 不会卡)
📻 {{lsViewTitle}} 的真人消息 (共{{lsMsgTotal}}条)
[{{m.sender}}] {{m.text}}
📥 提取话术 → 导入角色「{{lsExRole}}」
导入到角色: 关键词: 条数上限:
· {{t}}

客服对话

👤 员工:
{{c.peer_name||c.peer_id}}{{c.unread}}
{{accName(c.account_id)}} · {{c.last_msg}}
暂无私聊消息进来
{{curConv.peer_name||curConv.peer_id}} @{{curConv.peer_username||'-'}}
{{(m.direction=='in'?(curConv.peer_name||'客').charAt(0):selfAvText(curConv.account_id))}}
{{shortTime(m.created_at)}}📱发送失败
暂无消息
← 选择左侧会话

运营中心

今天的整体情况; 下面每个数字都能点
{{nuKpi.groups||0}}
群组总数
{{nuKpi.active_groups||0}}
在用群组(有配额)
{{nuKpi.online||0}} / {{nuKpi.accounts||0}}
运营账号(在线/总)
{{nuKpi.today_msg||0}}
今日发言
{{nuKpi.tasks||0}}
任务总数
{{nuKpi.task_ok||0}}
成功任务
{{nuKpi.task_fail||0}}
失败/异常

好友池(可拉人群)

{{nuKpi.pool||0}}
池里人数
{{nuKpi.pool_ok||0}}
已是好友
{{nuKpi.pool_pulled||0}}
已拉过群
{{nuKpi.grp_groups||0}}
群分组数
去【🚀 任务中心】发起拉人; 池子在【👥 好友】(高级设置里)

群组排行(按成员数)

群组成员已拉分组
{{g.title}}{{g.members}}{{g.pulled}} {{(g.grp_names||[]).join('、')||'—'}}
暂无群数据

账号中心

所有运营号; 点一行看详情(基础信息/运行状态/运营数据/操作日志)
在线 {{(nuAccs||[]).filter(a=>a.status=='online').length}} 异常 {{(nuAccs||[]).filter(a=>a.status!='online').length}} 已勾 {{(nuAccPickIds||[]).length}} 护栏/新号保护自动生效
账号TG名称状态线路分组今日发言今日加好友
{{a.tuo||('#'+a.id)}} {{a.phone}} {{a.tg_name||a.first_name||'—'}} {{a.status}} {{a.line||'—'}} {{(a.groups||[]).join('、')||'—'}} {{a.today_msg||0}}{{a.today_add||0}}
正在读取…

账号详情 · {{nuAccDetail.tuo||('#'+nuAccDetail.id)}}

ID
#{{nuAccDetail.id}}
Username
{{nuAccDetail.username?('@'+nuAccDetail.username):'—'}}
TG名称
{{nuAccDetail.tg_name||nuAccDetail.first_name||'—'}}
手机号
{{nuAccDetail.phone}}
线路
{{nuAccDetail.line||'—'}}
分组
{{(nuAccDetail.groups||[]).join('、')||'—'}}
Online
{{nuAccDetail.status}}
Session
{{nuAccDetail.status=='online'?'正常':'需重置登录/验证码'}}
当前任务
{{nuAccDetail.task||'—'}}
今日发言
{{nuAccDetail.today_msg||0}}
今日加好友
{{nuAccDetail.today_add||0}}
最近活动
{{nuAccDetail.last_active||'—'}}
操作日志见【🚀 任务中心 → 操作台账】(可按号筛)

群组中心

我建的群/我管理的群; 群链接在这一列, 点一下能复制; 点行进详情
共 {{(nuGroups||[]).length}} 个 已勾 {{(nuGrpPickIds||[]).length}} 新建群去【🚀 任务中心→建群】
群名称类型群链接成员已拉配额分组
{{g.title}} {{g.kind||'—'}} {{g.link}} 无链接记录 复制 {{g.members}}{{g.pulled}}{{g.quota}} {{(g.grp_names||[]).join('、')||'—'}}
正在读取…(群多时稍等)

群组详情 · {{nuGrpDetail.title}}

名称
{{nuGrpDetail.title}}
类型
{{nuGrpDetail.kind||'未知'}}
Invite Link
TG ID
{{nuGrpDetail.chat}}
所属分组
{{(nuGrpDetail.grp_names||[]).join('、')||'—'}}
成员数量
{{nuGrpDetail.members}}
已拉人数
{{nuGrpDetail.pulled}} / 配额 {{nuGrpDetail.quota}}
启用
{{nuGrpDetail.enabled?'是':'否'}}
改群资料
在【🔧高级设置→群设置】里改名字/头像
拉人
在【🔧高级设置→拉人进群】里给这个群拉人

群配置中心

群运营规则: 触发条件 → 执行动作 → 开关 (我们已有的功能都在这)
规则/配置触发条件执行动作状态
新成员欢迎语(首条消息)加好友成功后 / 进群后发送话术库里的消息{{(firstMsgList||[]).length?('已配置 '+(firstMsgList||[]).length+' 条'):'未配置'}}
炒群话术(托号话术)排班时间命中按托号各自话术发送{{(tuoList||[]).length?((tuoList||[]).length+' 个托号有话说'):'未配置'}}
炒群排班(运营策略)日期+时段+波次间隔自动发一波{{(scList||[]).length?((scList||[]).length+' 条排班'):'未配置'}}
群资料(名称/头像)你点执行改群名/群头像手动确认后执行
每群拉人配额拉人时每个群最多拉几人{{(gListRaw||[]).length}} 个群可设
风控护栏每次动作前超限跳过/连续失败熔断已开启

内容中心

文案/图片集中放(不写死在程序里); 发布任务引用它们

话术 / 文案

{{(firstMsgList||[]).length}}
首条消息话术
{{(tuoList||[]).reduce((a,t)=>a+((t.script_count)||0),0)}}
托号话术条数

素材(头像/名称)

{{(mfolders||[]).length}}
素材分组
{{(avatarList||[]).length}}
头像素材

任务中心

所有动作(建群/拉人/加好友/下号/炒群)都在这看状态: 执行中 / 成功 / 失败 + 操作台账

⚡ 快速拉人(好友池 → 多个群)

① 人群分组: 可拉 {{(nuTaskPool||[]).length}} 人 ② 群分组: 每群 人 已选群 {{(nuTaskGroups||[]).length}}
{{blk.title}} ← {{mm.name||mm.username||mm.phone}}
⚠️ {{nuTaskPreview.warn}}

任务列表

时间类型#标题状态
{{t.at}}{{t.kind}}{{t.id}}{{t.title}} {{t.status}}
还没有任务

操作台账(谁·何时·对谁·做了什么)

时间类型号目标结果原因
{{r.at}}{{r.kind}}{{r.account}} {{r.target}} {{r.status}} {{r.reason}}
暂无台账(做过的动作会自动记)

数据统计

用来看"哪个群值得继续投入"
{{nuKpi.groups||0}}
群组总数
{{nuKpi.active_groups||0}}
在用群组
{{nuKpi.pool_pulled||0}}
已拉过群的人
{{nuKpi.today_msg||0}}
今日发言

群组明细(按成员数)

群组成员配额已拉完成度
{{g.title}}{{g.members}}{{g.quota}}{{g.pulled}} {{g.quota>0?Math.min(100,Math.round((g.pulled/g.quota)*100))+'%':'—'}}
暂无数据

高级设置

原来那套功能全收在这里, 用的时候点开
功能说明
🚀 拉群建群(全部页签)建群 / 拉人 / 号进群 / 通讯录 / 话术库 / 排班 / 群设置 / 日志
👥 好友池通讯录 / 导入号码 / 加好友 / 通讯录分组
🧩 分组管理 + 📊 分组看板号分组 / 群分组 / 人群 一套打通
👤 账号 & 资料统一账号表格 / 素材上传 / 资料分配
🌐 号池与线路上下线 / 换线路(老页面)
📜 日志与台账任务日志 / 操作台账
📦 素材库(老页面)素材分组 / 上传 / 头像名称素材管理
💬 炒群养号(老页面)角色话术 / 炒群配对 / 日志
📊 老总览旧版首页(号码/会话/线路概览)
全部按钮式 · 老功能不受影响
原有功能:
托号(在线号 = 一个"人设", 名字自由起) 一号一托 · 每个托有自己的话术 · 排班按托号来
#头像托名绑定号TG名称(实时同步)状态线路话术备注
{{t.id}} 无头像 {{t.label}} {{t.phone}} {{t.tg_name || tuoNick(t.account_id) || '(未同步)'}} {{t.status}} {{t.line}} {{t.script_count}} 条 {{t.note}} 编辑 删
还没有托号, 下面新建一个
{{tuoForm.id?'✏️ 编辑托号 #'+tuoForm.id:'➕ 新建托号'}}
托号头像(素材库·点图选):
素材库还没有头像 → 去【👤 账号&资料】里的 📦素材上传
已选: {{tuoForm.avatar_path}} 清除 👉 头像在「📦素材库」上传, 这里选用
这个托的话术(一行一条, 可粘贴/上传)
⚠️ 批量设置托号的 TG 头像 / 名称(手动确认后才执行)
按你的规矩: 号资料只在你点按钮并二次确认后才改, 系统永不自动改号
选托号
🧹 残留清理(已删号的会话文件等)
删号时后台会自动清理; 这里可以手动看一遍并清掉历史残留(只移到备份目录, 不硬删)
残留 {{cleanInfo.orphan_count}} 个 / {{cleanInfo.orphan_size_mb}}MB · 属于现有号的文件 {{cleanInfo.kept_count}} 个
让在线号进群(一个号可进多个群)
私密群会自动用"已在群里的号"导出邀请链接, 其余号用链接进(不用你手动发链接)
选号
选群(可多选)
已选 {{(jAcc||[]).length}} 号 × {{(jGroups||[]).length}} 群
选要设置的群
群名称 / 描述 / 头像
欢迎消息(新成员)
发几条
管理员
群权限(勾选 = 禁止)
🤖 bot(先留位置, 后期你上传)
已存: {{(botList||[]).map(b=>b.name).join('、')||'无'}}
📋 操作台账 共 {{(lgStat.total||0)}} 成功 {{(lgStat.ok||0)}} 失败 {{(lgStat.fail||0)}} 跳过 {{(lgStat.skip||0)}}
时间类型号目标结果原因
{{r.at}} {{r.kind}} {{r.account}} {{(r.target||'').slice(0,28)}} {{r.status}} {{(r.reason||'').slice(0,40)}}
还没有台账记录
📜 操作日志 任务结果 + 号动作(建群/拉人/加好友/群资料/进群…)
时间类型#标题状态
{{t.at}}{{t.kind}}{{t.id}} {{t.title}}{{t.status}}
时间号动作目标
{{a.at}}{{a.phone}} {{a.action}}{{a.target}}
🧩 号分组 自建分组, 一个号可属于多个组; 分组还决定"用哪批素材改头像/名称"
#分组名号数对应素材分组备注成员
{{g.id}}{{g.name}}{{g.count}} {{g.material_category||'—'}} {{g.note}} {{(g.account_ids||[]).map(id=>accName(id)).join('、')}} 编辑 删
还没有分组, 上面新建一个
把号放进分组
已选 {{(agPickAccs||[]).length}} 号
头像托名手机TG名称状态线路所属分组
{{a.tuo||'—'}}{{a.phone}}{{a.tg_name||'—'}} {{a.status}}{{a.line}} {{(a.group_names||[]).join('、')||'—'}}
🏘 群分组
#分组名群数备注成员
{{g.id}}{{g.name}}{{g.count}} {{g.note}} {{(g.group_row_ids||[]).slice(0,4).map(id=>grpName(id)).join('、')}} … 编辑 删
还没有群分组
📊 分组看板(一个分组同时管 号+群+人群) 同名分组自动打通: 号分组「B组」+ 群分组「B组」+ 通讯录「B组」= 一回事
分组名号群可拉人群状态
{{b.name}} {{b.accounts}} {{b.groups}} {{b.people}} 号分组✓ 群分组✓ 仅通讯录 去拉这个组的人 →
还没有分组(在下面新建号分组/群分组, 或给通讯录打分组名)
🛡 风控护栏(保号用) 超限的自动跳过并排到明天; 连续失败会自动暂停任务
每号每天 拉人人 进群个 加好友人 发言条 建群个 改资料次
连续失败次自动暂停 新号保护小时 同群冷却分钟 (0 = 不限制)
说明: 护栏按"号 + 动作 + 当天"计数(台账里能查); 只影响新发起的任务, 不会打断正在跑的老任务
👤 账号列表(统一排版) 共 {{(accListAll||[]).length}} 个 · 显示 {{(pickList||[]).length}} 个 · 已勾 {{(accPick||[]).length}}
快捷: 批量改分组:
头像托名手机TG名称状态线路所属分组今日发言今日加好友
{{a.tuo||'—'}} {{a.phone}} {{a.tg_name||'(未同步)'}} {{a.status}} {{a.line}} {{(a.group_names||[]).join('、')||'—'}} {{a.today_talk}} {{a.today_add}}
没有匹配的号
📦 素材上传(先选好分组)
分组:
头像图片:
上传完点【🔄 刷新分组/素材】, 就能在下面"资料分配"里按图片选; 也可去【🧩 分组管理】把某个号分组对应到这个素材分组
🎭 资料分配(素材分组 → 号)
选一个【素材分组】→ 自动带出【对应号分组】的号 → 逐号配对(可手工改) → 预览 → 二次确认执行
号头像(素材分组)名称(素材分组)
{{r.phone}} {{r.tuo}} {{r.avatar_value||'(未选)'}}
先选素材分组 + 号分组, 再点「🔄 重新配对」
给 第{{paPickIdx+1}}行 选一张头像(点图即选, 再点关掉)
这个分组下还没有头像
提示: 素材库上传头像/名称时选好分组, 这里就能按组一键配对(前后对应); 执行前会再确认一次
👥 好友池 每个号的好友单独存本地 ✓ 能按号/分组筛选 ✓ 记住"谁已被拉过哪些群"✓
共 {{(frStat.total||0)}} 人 已是好友 {{(frStat.friends||0)}} 待加好友 {{(frStat.pending||0)}} 已拉过群 {{(frStat.pulled||0)}} 已勾 {{(frPick||[]).length}}
📇 通讯录分组(与平台分组同名即自动同步):
⬆ 导入号码到好友池
一行一个(或逗号分隔), 可带 +国家码; 也可填默认国家码
分配给:
说明: 导入的人先"待加好友", 之后点【➕ 加好友】把它们加成好友, 再在拉人页使用
➕ 给"待加好友"的人加好友
执行号:
会自动跳过"已是好友"的人; 慢慢加(自带间隔), 结果在【📜日志】里看
名称@用户名TG ID手机来源号来源号分组通讯录分组已是好友已拉过群更新
{{f.name||'(无名)'}} {{f.username?('@'+f.username):'—'}} {{f.tg_user_id||'—'}} {{f.contact_no?(+f.contact_no):(f.phone||'—')}} {{t}}— {{f.owner_tuo||'—'}}
{{f.owner_phone}}
{{(f.owner_groups||[]).join('、')||'—'}} {{f.is_friend?'是':'待加'}} {{f.pulled_count}}个: {{(f.pulled_groups||[]).join('、')}}— {{f.updated_at}}
池里还没人 —— 点【🔄 同步好友(在线号)】把号里的好友拉进来, 或用【⬆ 导入号码】
下一步(第4批): 勾选这些人 → 直接"自动分配到多个群"(每群几人) —— 已拉过的人会自动跳过, 不会重复拉
🏘 群管理
群分组已在【🧩 分组管理】里配好; 每群的「要拉几人/负责号组」在拉人页; 群名称·描述·头像在【🛠 群设置】
🚀 自动分配拉人(好友池 → 多个群) 选好友 → 选群 + 每群几人 → 预览分配表 → 执行;已拉过的人自动跳过
① 好友来源 符合条件 {{(auPool||[]).length}} 人 已勾 {{(auPick||[]).length}} 人
名称@用户名TG ID来源号来源号分组已拉过群
{{f.name||'(无名)'}} {{f.username?('@'+f.username):'—'}} {{f.tg_user_id||'—'}} {{f.owner_tuo||'—'}} {{(f.owner_groups||[]).join('、')||'—'}} {{f.pulled_count}}个: {{(f.pulled_groups||[]).join('、')}}—
点【🔄 载入好友】把人拉出来(池子在【👥 好友】页, 可先在那里同步/导入/加好友)
② 目标群 + 每群几人 每群拉 人 已选 {{(auGroups||[]).length}} 个群
群名人数已拉
{{g.title}} {{g.members}} {{g.pulled||0}}
执行后: 这些人标记"已拉过群", 下次自动跳过 ✓
分配预览 — 池里 {{auPlan.pool_total}} 人 · 本次用 {{auPlan.used}} 人 · 剩 {{auPlan.leftover}} 人 · 每群 {{auPlan.per_group}} 人
⚠️ {{auPlan.warn}}
群要拉进的人({{auPlan.per_group}}人/群)
{{blk.title}} {{m.name||m.username||m.phone}} ←{{m.owner_tuo}} (群里没人可分 —— 好友不够, 减少群数或调小每群人数)
其它入口
📋 我建好的群 + 邀请链接(点链接就能进群/发给别人) 只列"建群任务"建出来的群; 群名/类型/链接一目了然
#群名类型邀请链接用哪个号建的
{{i+1}} {{g.title}} {{g.kind||'—'}} {{g.link}} 无链接(建失败/未导出) 📄复制 {{g.by}} ⚠{{g.err}}
还没有建好的群 —— 下面填名字点「🏗 开始建群」, 建完这里就会出现链接
怎么用(3步): ① 下面选号 → 填群名前缀和个数 → 选类型(要聊天就选私密/公开群组, 别选频道) → 点「🏗 开始建群」 → ② 建完在上面那张表拿邀请链接 → ③ 去「➕ 拉人进群」把好友拉进去
① 用哪些号建群 已选 {{(bAcc||[]).length}} 个
(读取中… 若一直为空, 点右上「刷新」)
② 群名怎么起
👉 前缀「越南群」+ 从 1 开始 + 位数 2 + 建 2 个 = 会建成 越南群01、越南群02
③ 群类型
群组成员都能发言; 只能靠邀请链接进, 搜不到 群组成员都能发言; 能被搜到, 需 @用户名 ⚠️只有管理员能发, 成员只能看 —— 要大家聊天请选上面两个 建完归入群分组 (新群自动进这个群分组, 拉人页可一键选它) 建群间隔 秒(防限制)
预览: 将用 {{(bAcc||[]).length}} 个号 {{ bAcc.length?'':'(请先选号)' }} 创建 {{bPreviewNames}} {{bVis=='channel'?'(📢频道)':(bVis=='public'?'(公开群组 @'+ (bUser||'未填') +')':'(私密群组)')}}, 每个间隔 {{bGap}} 秒, 预计约 {{Math.max(1,Math.ceil((bCount*bGap)/60))}} 分钟
建群记录
#标题类型状态结果时间
{{t.id}}{{t.title}} {{t.kind||'—'}} {{t.kinds}} {{t.status}} {{t.kinds||''}} 成功{{t.ok_count}}失败{{t.fail_count}}看明细 {{t.created_at}} 停止
还没有建群记录
① 往哪些群拉人 框里填「这个群要拉多少人」(0=不限)
群选择: 批量配额:
群名人数已拉要拉几人启用
{{g.title}} {{g.members}} {{g.pulled}}
(群库读取中… 或搜不到; 先「🔄 刷新群库」)
已勾选 {{(iGroups||[]).length}} 个群; 每个群只拉它自己的配额, 拉过的号码不重复
② 从哪里找人
📇 用通讯录(好友池)自动分配
池子在这里:【👥 好友】页(可同步/导入/加好友); 分配规则=按勾选的群依次填满, 每个群按它自己的配额
只取哪个账号分组的池: 按人群分组: 可拉 {{(iPool||[]).length}} 人 / 已勾群 {{(iGroups||[]).length}} 个
分配预览({{(iPoolPreview.blocked||[]).length?'部分群配额为0已跳过':''}})
群要拉进的人
{{blk.title}}
配额{{(blk.members||[]).length}}
{{m.name||m.username||m.phone}} ←{{m.owner_tuo}}
还没生成(先勾群 + 载入池子 + 点生成)
⚠️ {{iPoolPreview.warn}}
③ 用哪些号去拉
单个间隔 ~ 秒 每号每天上限
{{p.name||p.phone}} @{{p.username}} · {{p.source}} (已在群里)
(没有可拉的人)
#{{t.id}} {{t.title||t.target_title}} — {{t.status}} {{t.progress}} 看明细
号码昵称@结果错误
{{m.phone}}{{m.first_name}}{{m.username}}{{m.status}}{{m.err}}
统计: 全部{{ctStat.all||0}} · 已注册{{ctStat.registered||0}} · 未注册{{ctStat.unreg||0}} · 未反查{{ctStat.noimport||0}} · 已加好友{{ctStat.added||0}}
反查任务: #{{t.id}} {{t.status}} {{t.checked}}/{{t.total}} 注册{{t.registered}}
通讯录
号码TG昵称注册已加归属号
{{c.phone}}{{c.username?('@'+c.username):c.tg_user_id}} {{c.first_name}} {{c.registered==1?'已注册':(c.registered==2?'未注册':'未反查')}} {{c.added?'✓':''}}{{c.owner_account_id||''}} 删
暂无数据
第 {{ctPage}} 页 / 共 {{ctTotal}} 条
🕒 排班
星期(留空=不限) 时段(可多个, 支持跨天)
目标群 指定号(留空=按角色自动)
到点自动跑: 日期命中 + 时段命中 + 距上次超过波次间隔
{{scPreview.ok?('将用 '+ (scPreview.accounts||[]).join(', ') +' 在 '+(scPreview.groups||[]).join('、')+' 演一波, 话题='+scPreview.topic+', 一幕='+scPreview.rounds+'条'):('✗ '+scPreview.err)}}
调度控制 {{scStatus.running?'调度运行中':'调度已停止'}} {{scStatus.now}} (周{{scStatus.weekday}}) 命中: {{(scStatus.hit||[]).map(h=>h.name).join('、')||'无'}}
#名称日期星期时段角色话题一幕波次启用
{{s.id}}{{s.name}} {{s.date_mode=='always'?'长期':(s.date_mode=='range'?(s.date_from+'~'+s.date_to):s.dates)}} {{s.weekday_mask||'不限'}}{{s.windows||'全天'}}{{s.role_name||'全部'}}{{s.topic||'随机'}} {{s.length}}{{s.wave_min}}~{{s.wave_max}}分{{s.enabled?'✓':''}} 编辑 删
还没有排班, 上面填好点「保存排班」
📊 实时看板 (近 {{mtDays}} 天)
总发言 {{mt.total||0}} 条 · 在线号 {{mt.online||0}} · {{mt.act_running?'炒群循环运行中':''}}
按号
#{{a.id}} {{a.phone}} — {{a.n}} 条 失败{{a.fail}}
(暂无)
按群
{{g.group}} — {{g.n}} 条
(暂无)
按小时
{{(mt.by_hour||[]).map(h=>h.hour).join(' ')}}
🔗 号 × 群 绑定
一个号可以进多个群发话术(绑定后可让不同群用不同号, 避免同批号在所有群露面)
当前绑定 {{(agList||[]).length}} 条
可在「拉人进群 / 通讯录」页选择用它作为加好友首条消息
#库名条数启用内容预览
{{p.id}}{{p.name}}{{p.count}}{{p.enabled?'✓':''}} {{(p.texts||'').split('\n').slice(0,3).join(' / ')}} 删
还没有话术库, 上面填名称+内容保存即可

📡 实时日志 {{logsView=='list'?'(任务列表, 点击进入发送详情)':'('+logFocusTitle+') 2秒自动刷新'}}

共 {{ntLogTotal}} 条 · 保留7天自动清
🌱 养号日志(哪个号干了啥)
时间档案ID账号动作对象时长结果
{{r.at}} {{r.tg_id}} {{r.name}} {{ntActName(r.action)}} {{r.target}} {{r.duration?ntDur(r.duration):'—'}} {{r.ok?'✅':'❌ '+r.msg}}
暂无养号日志(去号池点[🎙️语音直播] 试试)
第 {{ntLogPage}} 页(每页200条)
共 {{logCards.length}} 个任务 · 点击任务卡片查看该任务实时发送详情
还没有任务 — 去 [⚡广告任务] 建一个群发任务
{{t.title}} {{statusText2(t)}}
🔵 进行中 · {{taskProgTxt(t)}} · ⏳正在发→{{t.progress.current}} {{taskProgTxt(t)}} · 成功{{t.progress.done||0}} · 失败{{t.progress.fail||0}} 尚未启动 · 最近: {{t.lastLog||'—'}}
最近 {{(t.progress&&t.progress.log||[]).slice(-1)[0]&&(t.progress.log.slice(-1)[0].t)||'—'}}
{{t.sTime}}
{{logFocusTitle}} {{statusText2(logFocus)}} ⚡ {{(logFocus.progress&&logFocus.progress.done)||0}}/{{(logFocus.progress&&logFocus.progress.total)||0}} · 剩{{fmtSec((logFocus.progress&&logFocus.progress.remaining_secs)||0)}}
📅 创建 {{fmtDT(logFocus.created_at)}} ▶️ 启动 {{fmtDT(logFocus.started_at)}} ⏹ 结束 {{fmtDT(logFocus.finished_at)}} ⏱️ 用时 {{durBetween(logFocus.started_at,logFocus.finished_at)}} ✅ 成功 {{logStat.ok}} ❌ 失败 {{logStat.fail}} 📤 成功率 {{logStat.rate}}% 📱 {{ph.slice(-6)}} {{c}}
时间轮次账号线路目标群素材结果
{{L.t}} 第{{L.round}}轮 {{L.acc}} {{L.line}} {{L.grp}} {{L.tpl}} ✅✗ {{L.err}}
该任务还没有发送日志(可能刚创建或还没发)
已显示 {{logPage.length}} / 共 {{logPageTotal}} 条(日志保留最近15天 · 导出CSV看全部)