# Using Wait for Reply with iMessage Workflows

When using iMessage through WhatSnap in GoHighLevel workflows, you may encounter an issue where the "Wait for Reply" step doesn't function as expected with custom actions. This guide explains why this happens and how to work around it effectively.

{% hint style="info" %}
**Quick Solution**: Use the standard SMS action in your workflow instead of a custom action, and it will automatically send via iMessage when the contact has an iMessage-compatible device.
{% endhint %}

***

## ❌ The Problem

If you're using WhatSnap custom actions to send iMessages and then add a "Wait for Reply" step in your workflow, you'll notice:

**The "Wait for Reply" step doesn't recognize the custom action**

This happens because GoHighLevel doesn't register custom actions as valid message types that can be waited on. The workflow will skip the wait step and continue immediately.

**Example of What Doesn't Work:**

```
1. Send Message (WhatSnap Custom Action - iMessage)
2. Wait for Contact Reply ❌ (This gets skipped)
3. Send Follow-up Message
```

***

## ✅ The Solution

To make the "Wait for Reply" step work with iMessage, you need to follow these conditions:

### 🔧 1. Configure Account for iMessage Only

Ensure your WhatSnap account is configured to use iMessage as the primary/only messaging channel:

1. In **WhatSnap Dashboard**, locate your iMessage device
2. Verify it's set as the **SMS Channel Override** (not as a separate channel)
3. This ensures all SMS actions route through iMessage automatically

{% hint style="success" %}
**SMS Channel Override**: When enabled, WhatSnap replaces your GHL SMS channel, so all standard SMS actions automatically use iMessage for iPhone users.
{% endhint %}

### 📩 2. Use Standard SMS Action Instead of Custom Action

Even though you're using iMessage under the hood, GoHighLevel will send the message as iMessage if the recipient is an iPhone user—**as long as you're using the standard SMS action**.

**Why This Works:**

* GoHighLevel recognizes standard SMS actions for "Wait for Reply" functionality
* WhatSnap's SMS Channel Override ensures the message sends via iMessage
* The recipient still receives it as an iMessage (blue bubble)
* Replies are properly tracked by the wait step

***

## 💡 Example Workflow Setup

Here's how to build your workflow correctly:

### ✅ Working Workflow

```
Trigger: Tag added → "new-lead"

1. Send SMS (Standard Action)
   Message: "Hi {{first_name}}, thanks for reaching out! 
   Are you available for a quick call tomorrow?"
   
   → Sends as iMessage if recipient has iPhone
   → Sends as SMS if recipient has Android

2. Wait for Contact Reply
   Duration: 24 hours
   
   → Now works! Detects replies properly

3. IF Reply Contains "yes"
   → Send SMS: "Great! I'll call you tomorrow at 10 AM"

4. IF Reply Contains "no"
   → Send SMS: "No problem! What day works better for you?"

5. IF No Reply (timeout)
   → Send SMS: "Just following up on my previous message..."
```

### 🔁 Visual Workflow Example

{% @mermaid/diagram content="graph TD;
A\["📥 Trigger: New Lead"] --> B\["📤 Send SMS<br/>(Standard Action)"];
B --> C\["⏳ Wait for Reply<br/>(24 hours)"];
C --> D{Reply Received?};
D -->|"✅ Yes"| E\["💬 Send Response<br/>Based on Reply"];
D -->|"❌ No"| F\["📨 Send Follow-up<br/>(Reminder)"];
E --> G\["✅ Workflow Complete"];
F --> G;

```
classDef trigger fill:#e3f2fd,stroke:#1976d2,stroke-width:3px,color:#000000;
classDef action fill:#e8f5e8,stroke:#00695c,stroke-width:2px,color:#000000;
classDef wait fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000000;
classDef decision fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000000;

class A trigger;
class B,E,F action;
class C wait;
class D decision;" %}
```

***

## 🔧 Step-by-Step Configuration

{% stepper %}
{% step %}

#### Step 1: Verify SMS Channel Override

Ensure your iMessage account is set to override the SMS channel:

1. Go to **WhatSnap Dashboard** in GHL
2. Navigate to **Connected Accounts** or **Devices**
3. Find your iMessage device
4. Click **Settings** or menu (⋮)
5. Verify **"SMS Channel Override"** is **enabled**
6. If not enabled, toggle it on and save

**What This Does:**

* Routes all standard SMS actions through your iMessage account
* Maintains compatibility with GHL's built-in workflow features
* Automatically selects iMessage or SMS based on recipient device type
  {% endstep %}

{% step %}

#### Step 2: Create Workflow with Standard Actions

Build your workflow using standard GHL actions:

1. In **GoHighLevel**, go to **Automations** → **Workflows**
2. Create a new workflow or edit existing one
3. Add **"Send Message"** action (not custom action)
4. Select **"SMS"** as the channel type
5. Compose your message with personalization
6. Add **"Wait for Contact Reply"** step
7. Configure wait duration (e.g., 24 hours, 48 hours)
8. Add conditional branches based on reply content
9. Add follow-up actions for each scenario

**Important:**

* Use the **standard SMS action**, not WhatSnap custom action
* The message will automatically route via iMessage
* The wait step will now properly track replies
  {% endstep %}

{% step %}

#### Step 3: Test the Workflow

Verify your workflow functions correctly:

1. **Test Contact Setup:**
   * Use a contact with the iMessage account tag
   * Ensure contact has a valid iPhone number
   * Assign contact to workflow trigger
2. **Trigger the Workflow:**
   * Manually trigger workflow or use trigger condition
   * Verify first message sends as iMessage (check Mac Messages app)
   * Confirm message shows as blue bubble on recipient's iPhone
3. **Test Reply Detection:**
   * Have recipient reply to the message
   * Verify workflow detects the reply
   * Check that appropriate conditional branch executes
   * Confirm follow-up message sends
4. **Test Timeout:**
   * Trigger workflow with a contact who won't reply
   * Wait for timeout duration to elapse
   * Verify timeout branch executes
   * Confirm reminder/follow-up message sends

{% hint style="success" %}
**Testing Tip**: Use a second iPhone you control for testing to verify both reply and timeout scenarios work correctly.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## 🚫 What NOT to Do

### ❌ Don't Use Custom Action for Initial Message

**This Won't Work:**

```
1. Send Message (WhatSnap Custom Action - iMessage)
2. Wait for Contact Reply ❌ (Skipped)
3. Respond with another message
```

**Why It Fails:**

* GoHighLevel doesn't track replies against custom actions
* The wait step is immediately skipped
* Workflow continues without waiting for reply
* Conditional branching based on reply doesn't work

### ❌ Don't Mix Custom and Standard Actions

**Avoid This Pattern:**

```
1. Send SMS (Standard Action) ✅
2. Wait for Reply ✅
3. Send Message (Custom Action) ⚠️ (Inconsistent)
```

**Why It's Problematic:**

* Inconsistent message routing
* Harder to troubleshoot
* May confuse contact (different sender behavior)

***

## ✅ What Works - Summary Table

| Feature                        | Works with Custom Action | Works with Standard SMS |
| ------------------------------ | ------------------------ | ----------------------- |
| **iMessage Sending**           | ✅ Yes                    | ✅ Yes                   |
| **Wait for Reply**             | ❌ No                     | ✅ Yes                   |
| **Reply Detection**            | ❌ No                     | ✅ Yes                   |
| **Conditional Branching**      | ❌ No                     | ✅ Yes                   |
| **Timeout Handling**           | ❌ No                     | ✅ Yes                   |
| **iOS/Android Auto-Detection** | ⚠️ Manual                | ✅ Automatic             |

***

## 📋 Common Workflow Patterns

### Pattern 1: Qualification Workflow

```
Trigger: New lead added

1. Send SMS (Standard): "Hi {{first_name}}, are you looking to 
   buy or sell a property?"

2. Wait for Reply (48 hours)

3. IF Reply contains "buy"
   → Tag: "buyer"
   → Send SMS: "Great! I'll send you our current listings..."

4. IF Reply contains "sell"
   → Tag: "seller"
   → Send SMS: "Perfect! Let's schedule a home evaluation..."

5. IF No Reply
   → Send SMS: "Just checking in - still interested?"
```

### Pattern 2: Appointment Confirmation

```
Trigger: Appointment booked

1. Send SMS (Standard): "Hi {{first_name}}, your appointment 
   is scheduled for {{appointment_date}}. Reply YES to confirm."

2. Wait for Reply (24 hours)

3. IF Reply contains "yes" or "confirm"
   → Tag: "appointment-confirmed"
   → Send SMS: "Great! See you then!"

4. IF Reply contains "no" or "cancel"
   → Tag: "appointment-cancelled"
   → Send SMS: "No problem, would you like to reschedule?"

5. IF No Reply
   → Send SMS: "Reminder: Please confirm your appointment for tomorrow"
```

### Pattern 3: Sales Follow-Up Sequence

```
Trigger: Demo completed

1. Send SMS (Standard): "Hi {{first_name}}, thanks for the demo! 
   Do you have any questions I can answer?"

2. Wait for Reply (24 hours)

3. IF Reply received
   → Respond based on content
   → Assign to "engaged-leads"

4. IF No Reply
   → Wait 2 days
   → Send SMS: "Just following up - still interested?"
   → Wait for Reply (24 hours)
   
5. IF Still No Reply
   → Assign to "cold-follow-up" campaign
```

***

## 🔍 Troubleshooting

### Issue: Wait Step Still Not Working

**Symptoms:**

* Using standard SMS action
* Wait step still gets skipped
* No reply detection

**Solutions:**

1. **Check SMS Channel Override:**
   * Verify it's enabled in WhatSnap settings
   * May need to reconnect device
   * Restart WhatSnap Gateway app on Mac
2. **Verify Contact Has Account Tag:**
   * Contact must have iMessage account tag (e.g., `whatsnap-account-imessage`)
   * Check tag is properly assigned
   * Tag must match your iMessage device tag
3. **Check Workflow Configuration:**
   * Ensure using "Wait for Contact Reply" (not "Wait for Action")
   * Verify timeout duration is reasonable
   * Check conditional branches are properly configured
4. **Test with Fresh Workflow:**
   * Create new simple test workflow
   * Use single message → wait → response pattern
   * Verify basic functionality works
   * Then add complexity

### Issue: Messages Send as SMS, Not iMessage

**Symptoms:**

* Messages appear as green bubbles on recipient's iPhone
* Should be blue bubbles (iMessage)

**Solutions:**

1. **Verify Recipient Has iMessage:**
   * Confirm recipient has iPhone with iMessage enabled
   * Send test message directly from Mac Messages app
   * If it sends as green bubble there too, recipient doesn't have iMessage active
2. **Check Mac iMessage Setup:**
   * Verify iMessage is signed in on Mac
   * Check Messages in iCloud is enabled
   * Ensure phone number is selected (not email)
   * See: [iMessage Setup Guide](https://whatsnap.gitbook.io/whatsnap-docs/account-management/imessage)
3. **Verify WhatSnap Connection:**
   * Check WhatSnap Gateway app is running
   * Verify device shows "Connected" in dashboard
   * Restart gateway app if needed

### Issue: Replies Not Detected

**Symptoms:**

* Contact replies to message
* Workflow doesn't proceed
* Reply visible in GHL conversations but not triggering workflow

**Solutions:**

1. **Check Reply Shows in GHL:**
   * Open contact's conversation tab
   * Verify reply appears there
   * If not, WhatSnap sync issue (check gateway app)
2. **Verify Wait Step Configuration:**
   * Check wait step is "Wait for Contact Reply" not "Wait for Action"
   * Ensure contact matches wait step target
   * Check timeout hasn't already elapsed
3. **Test Conditional Logic:**
   * Reply must match conditional criteria (if using "contains" logic)
   * Check for typos in condition keywords
   * Use broader conditions for testing (e.g., "Reply contains anything")

***

## 📚 Related Documentation

For more information about iMessage workflows and setup:

* [**iMessage Setup Guide**](https://whatsnap.gitbook.io/whatsnap-docs/account-management/imessage) - Complete iMessage installation and configuration
* [**Workflow Automation**](https://whatsnap.gitbook.io/whatsnap-docs/conversations/workflow-automation) - Advanced workflow strategies
* [**Messaging Basics**](https://whatsnap.gitbook.io/whatsnap-docs/conversations/messaging-basics) - Understanding message routing
* [**Tag Management**](https://whatsnap.gitbook.io/whatsnap-docs/account-management/settings/tag-management) - How account tags work
* [**iMessage Troubleshooting**](https://whatsnap.gitbook.io/whatsnap-docs/account-management/imessage/troubleshooting-imessage) - Fix iMessage connection issues

***

## 📌 Key Takeaways

{% hint style="success" %}
**Remember:** If you're using iMessage with WhatSnap and want to use "Wait for Reply" in workflows:

1. ✅ Enable **SMS Channel Override** in WhatSnap settings
2. ✅ Use **standard SMS actions** in your workflows (not custom actions)
3. ✅ The message will automatically route as **iMessage** for iPhone users
4. ✅ "Wait for Reply" will now **work properly** and track responses

This approach gives you full workflow functionality while leveraging iMessage's superior engagement rates.
{% endhint %}

***

**Questions?** Contact WhatSnap support at <support@whatsnap.ai> for help with workflow configuration.
