Seth commited on
Commit ·
b765ec8
1
Parent(s): d154f53
update
Browse files- backend/app/smartlead_client.py +28 -17
backend/app/smartlead_client.py
CHANGED
|
@@ -113,25 +113,36 @@ class SmartleadClient:
|
|
| 113 |
def create_campaign(self, name: str) -> Dict:
|
| 114 |
"""Create a new campaign
|
| 115 |
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
With body: {"campaign_name": "..."}
|
| 119 |
"""
|
| 120 |
-
# Try
|
| 121 |
-
|
| 122 |
-
"
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
|
|
|
|
|
|
|
|
|
| 129 |
try:
|
| 130 |
-
return self._make_request("POST",
|
| 131 |
-
except:
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
|
| 136 |
def save_campaign_sequence(self, campaign_id: str, sequences: List[Dict]) -> Dict:
|
| 137 |
"""Save campaign sequence steps"""
|
|
|
|
| 113 |
def create_campaign(self, name: str) -> Dict:
|
| 114 |
"""Create a new campaign
|
| 115 |
|
| 116 |
+
Smartlead API might expect different parameter names.
|
| 117 |
+
Try common variations: "name", "campaign_name", "title"
|
|
|
|
| 118 |
"""
|
| 119 |
+
# Try different parameter name variations
|
| 120 |
+
variations = [
|
| 121 |
+
{"name": name}, # Most common format
|
| 122 |
+
{"campaign_name": name}, # Alternative
|
| 123 |
+
{"title": name}, # Another alternative
|
| 124 |
+
]
|
| 125 |
+
|
| 126 |
+
endpoints = ["/campaigns/create", "/campaigns"]
|
| 127 |
+
|
| 128 |
+
last_error = None
|
| 129 |
+
for endpoint in endpoints:
|
| 130 |
+
for data in variations:
|
| 131 |
try:
|
| 132 |
+
return self._make_request("POST", endpoint, data)
|
| 133 |
+
except Exception as e:
|
| 134 |
+
last_error = e
|
| 135 |
+
# If it's a 400 error about parameter name, try next variation
|
| 136 |
+
if "400" in str(e) and ("not allowed" in str(e) or "invalid" in str(e).lower()):
|
| 137 |
+
continue
|
| 138 |
+
# If it's a 404, try next endpoint
|
| 139 |
+
if "404" in str(e):
|
| 140 |
+
break
|
| 141 |
+
# For other errors, re-raise
|
| 142 |
+
raise
|
| 143 |
+
|
| 144 |
+
# If all variations failed, raise the last error
|
| 145 |
+
raise last_error if last_error else Exception("Failed to create campaign: All parameter variations failed")
|
| 146 |
|
| 147 |
def save_campaign_sequence(self, campaign_id: str, sequences: List[Dict]) -> Dict:
|
| 148 |
"""Save campaign sequence steps"""
|