# Tag Contact: mentag kenalan

Tambah tag pada orang di sebalik perbualan ini — dibaca oleh Contacts, segmen, siaran, dan boleh memindahkan satu deal melalui peraturan pipeline.

## Mula pantas

1. Pergi ke **Automate → Workflows** dan buka satu aliran kerja. Klik **+** dan pilih **Tag Contact**.
2. Gunakan **Tag Conversation** sebaliknya jika tag itu hanya tentang sembang ini sahaja.
3. Biarkan **Action** pada **Add Tag** dan **On** pada **Contact**.
4. Pilih satu atau lebih tag daripada butang tag, atau taip satu baharu dan tekan Enter.
5. Tetapkan **Status** kepada **Published** di bar alat atas, **Save**, sahkan **Terbitkan**. Ejen: minta pemilik atau pentadbir.

## Beri perhatian

- Satu tag yang ditetapkan di bawah **Pipelines → Urus pipeline** boleh memindahkan atau membuka satu deal — semak di situ sebelum menganggap satu langkah tag hanya mentag.

## Di mana untuk mencarinya

**Automate → Workflows**, buka satu aliran kerja, klik **+** pada kanvas, kemudian pilih **Tag Contact** di bawah **Add Steps**.

## Sebelum anda mula

- **Pemilik**, **Pentadbir** atau **Ejen** boleh menambah langkah ini dan menyimpan aliran kerja. Menerbitkan aliran kerja itu — yang membuatkannya berjalan pada perbualan sebenar — ialah tindakan **Pemilik** atau **Pentadbir**.
- Membina dan menjalankan aliran kerja bergantung pada pelan anda; lihat [harga](/pricing).
- Tiada apa-apa di luar Inchat perlu disambungkan.

## Cara menyediakannya

1. Buka aliran kerja dan klik **+** di tempat tag itu patut berada.
2. Pilih **Tag Contact**.
3. Biarkan **Action** pada **Add Tag** dan **On** pada **Contact** — menukar salah satu menjadikan ini Tag Conversation, Untag Conversation atau Untag Contact sebaliknya, kerana keempat-empatnya berkongsi satu editor.
4. Pilih satu atau lebih tag daripada butang tag yang sudah digunakan dalam ruang kerja ini, atau taip satu baharu dan tekan Enter.
5. Simpan langkah ini. Untuk menerbitkan: tetapkan **Status** kepada **Published** di bar alat di bahagian atas editor, klik **Save**, kemudian sahkan dengan **Terbitkan**. Menukar dropdown sahaja tidak mengubah apa-apa sehingga anda menyimpan.

## Medan

| Medan | Apa maksudnya | Lalai | Batasan |
| --- | --- | --- | --- |
| Action | Add Tag atau Remove Tag. | Add Tag | Memilih **Remove Tag** menyimpan ini sebagai langkah Untag Contact sebaliknya. |
| On | Sama ada tag itu diletakkan pada kenalan atau pada perbualan ini sahaja. | Contact | Memilih **Conversation** menyimpan ini sebagai langkah Tag Conversation sebaliknya. |
| Tags | Satu butang tag bagi setiap tag yang sudah digunakan di mana-mana dalam ruang kerja, ditambah satu kotak untuk menaip satu baharu. Beberapa boleh dipilih pada satu langkah. | — | Satu langkah menyimpan paling banyak 20 tag: mana-mana selepas yang ke-20 digugurkan apabila anda menyimpan, tanpa amaran. Satu nama yang ditaip di sini yang belum ada dalam senarai tag ruang kerja ditambah secara automatik; satu nama melebihi 64 aksara ditolak apabila anda menyimpan. |

## Bagaimana ia berfungsi

- Langkah ini mengenal pasti kenalan di sebalik perbualan ini dan menulis tag itu pada rekod mereka — apa yang bar sisi kenalan tunjukkan, apa yang **Contacts** tapis mengikutnya, dan apa yang segmen serta siaran sasarkan. Ia tidak menyentuh tag perbualan itu sendiri; itu kerja **Tag Conversation**.
- Ia berfungsi walaupun tiada apa lebih awal dalam aliran kerja mencari kenalan itu.
- Menambah satu tag yang kenalan itu sudah ada tidak melakukan apa-apa: tiada ralat ditunjukkan, dan kerana tiada apa berubah, tiada apa baharu dicatat ke tab Activity juga.
- Menamakan beberapa tag pada satu langkah mencuba setiap satu daripadanya, walaupun satu lebih awal dalam senarai gagal ditulis.
- Langkah itu ditunjukkan sebagai gagal dalam tab Activity larian itu jika mana-mana satu daripadanya gagal.
- Setiap nama tag dibersihkan sebelum disimpan — dipotong, dihadkan pada 64 aksara, dan dipadankan dengan senarai tag sedia ada ruang kerja tanpa mengira huruf besar/kecil. Menulis "sale" pada kenalan yang sudah ada "Sale" tidak mencipta satu tag kedua.
- Tulisan itu dilipat ke ejaan sedia ada senarai tag itu, walaupun langkah itu masih mengira ia sebagai satu tambahan dan mencatat "sale" pada tab Activity.
- Satu tag yang benar-benar ditambah (bukan tiada-kesan) dicatat ke tab Activity kenalan itu — ditanda sebagai ditambah oleh satu aliran kerja, atau oleh ejen AI di dalam satu giliran AI.
- Satu peringkat pipeline boleh ditetapkan, di bawah **Pipelines → Urus pipeline**, dengan **"Tag ini pada kenalan akan memindahkan deal ke sini (ke hadapan sahaja):"**.
- Menambah satu tag pada senarai peringkat itu memindahkan deal kenalan ini yang sudah terbuka dalam pipeline itu ke hadapan ke peringkat itu. Jika kenalan itu tiada deal terbuka dalam pipeline itu, satu deal baharu dibuka hanya jika mereka tidak pernah mempunyai satu deal di situ. Satu deal yang menang atau gagal dikira sebagai sudah pernah mempunyai satu.
- Pemindahan itu mencetuskan **Deal Stage Changed** untuk mana-mana aliran kerja yang mendengarnya, dengan **Moved by** ditetapkan kepada **A rule or import**. Satu tag yang tidak ditetapkan pada mana-mana peringkat tidak melakukan apa-apa daripada ini — penulis aliran kerja memutuskan tag mana yang penting dengan menetapkannya di situ.

## Bila ia gagal

- Perbualan ini tiada kenalan berkaitan: langkah ini gagal dengan **this conversation has no contact to tag**, dan tiada apa ditulis.
- Satu masalah Inchat sementara semasa membaca atau menulis kenalan itu — bukan sesuatu yang anda buat — juga menggagalkan langkah ini. Ini kes berbeza daripada yang di atas: tiada sebab khusus ditetapkan untuknya, jadi tab **Activity** larian itu menunjukkan baris tetap **failed without a reported reason** sebaliknya daripada mesej di atas.
- Satu tulisan tag yang gagal tidak menghentikan larian itu. Langkah itu ditunjukkan sebagai gagal dalam tab Activity larian itu dan aliran itu beralih ke langkah seterusnya, jadi satu mesej atau penutupan yang diletakkan selepasnya tetap berlaku pada kenalan yang tidak ditag itu.

## Apa yang ia tidak lakukan

- Ia tidak pernah menyentuh tag perbualan ini sendiri — satu aliran kerja yang mahu tag itu hilang bersama perbualan itu memerlukan **Tag Conversation** sebaliknya.
- Tag itu terpakai pada kenalan itu di mana-mana sahaja, bukan pada saluran perbualan ini sahaja — seorang kenalan yang menulis pada dua saluran membawa tag yang sama pada kedua-duanya.
- Ia tidak mencetuskan pencetus **Contact Tag Updated** ruang kerja ini untuk aliran kerja lain. Hanya satu perubahan yang dibuat dalam Contacts, bar sisi peti masuk, aplikasi atau API awam melakukan itu — gunakan **Trigger Another Workflow** untuk menyerahkannya dengan sengaja sebaliknya.
- Ada satu pengecualian, walaupun begitu: satu tag yang satu peringkat pipeline mengawasi (lihat Bagaimana ia berfungsi) tetap boleh membuka atau memindahkan satu deal.
- Itu tetap mencetuskan **Deal Stage Changed** untuk aliran kerja lain — walaupun pencetus khusus ini tidak pernah tercetus.

## Amalan terbaik

- Gunakan langkah ini, bukan Tag Conversation, setiap kali satu siaran atau segmen kemudian perlu mencari orang yang sama lagi.
- Semak **Pipelines → Urus pipeline** untuk peringkat dengan tag yang ditetapkan di bawah "Tag ini pada kenalan akan memindahkan deal ke sini" sebelum menganggap satu langkah tag hanya mentag. Salah satu tag ini juga boleh memindahkan satu deal.

## Contoh penggunaan

- Tag seorang kenalan `webinar-attendee` selepas **Record Attendance** menanda mereka hadir, supaya satu siaran kemudian boleh menyasarkan segmen itu dengan tepat.
- Tag seorang kenalan `vip` sebaik sahaja deal mereka melepasi satu ambang nilai, supaya setiap perbualan akan datang dengan mereka kelihatan dalam satu penapis Contacts.

## Berkaitan

- [Untag Contact](https://inchat.inseller.my/help/workflows/untag-contact)
- [Tag Conversation](https://inchat.inseller.my/help/workflows/tag-conversation)
- [Untag Conversation](https://inchat.inseller.my/help/workflows/untag-conversation)
- [Move Deal to Stage](https://inchat.inseller.my/help/workflows/move-deal-to-stage)
- [Conditions and variables](https://inchat.inseller.my/help/workflows/conditions-and-variables)
- [Workflows: how a flow runs](https://inchat.inseller.my/help/workflows/workflows-overview)

---

Source files: `src/lib/workflows/ai-builder/spec.ts`, `src/lib/workflows/canvas-model.ts`, `src/components/workflows/WorkflowStepConfigDrawer.tsx`, `src/lib/workflows/engine-record-actions.ts`, `src/lib/workflows/engine.ts`, `src/lib/workflows/form-payload.ts`, `src/lib/workflows/workflow-input-schema.ts`, `src/lib/activity/record.ts`, `src/lib/workflows/contact-triggers.ts`, `supabase/migrations/20260911210000_tags_catalog.sql`, `supabase/migrations/20260917190000_pipeline_stage_auto_tags.sql`, `supabase/migrations/20260920150000_opportunity_stage_events.sql`, `src/lib/pipelines/stage-events.ts`, `src/lib/i18n/messages/pipelines.ts`, `src/lib/conversations/upsert.ts`, `src/lib/workflows/condition-catalog.ts`
