Configuring Webhooks in Ideawake
Use Ideawake webhooks to let tools like Jira, ServiceNow, or Zapier update idea stages and post comments into Ideawake on demand.
Overview:
Ideawake webhooks are inbound APIs. An external system (Jira, ServiceNow, Zapier, or custom middleware) sends a secure POST request into Ideawake to:
• Move an idea to a new workflow stage
• Add a comment on an idea
These endpoints do not push events out of Ideawake. To send Ideawake events to another app (for example, create a Jira issue when an idea reaches Implementation), use your existing Ideawake to Jira or Zapier integration, then use the webhooks below for the return sync.
Base URL: https://endpoint.ideawake.com
Before you start
- You need Community Admin (or equivalent) access.
- Enable webhook integration and copy your keys.
- Decide how you will map Ideawake idea IDs to external tickets (for example, store the Ideawake opportunity/idea ID on the Jira issue). Without that link, the webhook cannot update the correct idea.
Enable webhooks and get your keys
- Go to Settings → Community Basic & Sign In Settings.
- Enable Webhook Integration / Webhook Signature.
- Open Integrations → Webhooks.
- Copy: • Base URL • Signature Key used for the Generic webhook (X-Signature) • Webhook API Key used for Comment and Stage Change webhooks (Authorization: Bearer …)
Keep these keys private. Rotate the signature key from the same screen if it is ever exposed.
Which webhook should I use?
Stage Change Endpoint: /webhooks/stage-change Best for: Jira/ServiceNow status → Ideawake stage Auth: Bearer Webhook API Key
Comment Endpoint: /webhooks/comment Best for: External comment → Ideawake idea comment Auth: Bearer Webhook API Key
Generic Endpoint: /webhooks/receive Best for: One signed URL that can do either action Auth: HMAC-SHA256 + Community ID
Most customers should start with Stage Change and Comment. Use Generic only if your system can generate an HMAC signature and you prefer a single endpoint.
Stage Change webhook:
Moves an idea (opportunity) to a new stage when something happens outside Ideawake.
Common example: A Jira issue moves to Done → Ideawake idea moves to Implemented (or your mapped stage).
Request • Method: POST • URL: https://endpoint.ideawake.com/webhooks/stage-change • Headers: Authorization: Bearer Content-Type: application/json
Body: { "opportunityId": "692",
"newStageId": "414",
"source": "servicenow",
"userId": 2,
"workflowId": 2,
"generateEmails": false,
"generateActionItems": false,
"linkStageFields": false
}
Field guide:
• opportunityId Required. Ideawake idea/opportunity ID (as a string).
• newStageId Required. Target Ideawake stage ID (as a string).
• source Required. Integration source. Supported values today: servicenow, oneplan.
• userId Optional. Ideawake user associated with the change.
• workflowId Optional. Workflow ID, if applicable.
• generateEmails Optional. Whether to trigger stage emails.
• generateActionItems Optional. Whether to generate action items.
• linkStageFields Optional. Whether to link stage fields.
Quick test (cURL): curl -X POST "https://endpoint.ideawake.com/webhooks/stage-change"
-H "Authorization: Bearer YOUR_WEBHOOK_API_KEY"
-H "Content-Type: application/json"
-d '{ "opportunityId": "692", "newStageId": "414", "source": "servicenow", "generateEmails": false, "generateActionItems": false, "linkStageFields": false }'
Comment webhook:
Creates a comment on an Ideawake idea from an external system.
Common example: Someone comments on a linked Jira issue → that comment appears on the Ideawake idea.
Request • Method: POST • URL: https://endpoint.ideawake.com/webhooks/comment • Headers: Authorization: Bearer Content-Type: application/json
Body: {
"userId": 123, "message": "Engineering: verified in staging and ready for release.","community": 1, "entityType": 1, "entityObjectId": "456", "anonymous": 0, "tags": [], "attachments": [], "challengeId": 10, "additionalSettings": { "stageId": 414, "commentVisibiltySettings": {} }}
Field guide:
• message Required. Comment text.
• community Required. Your Ideawake community ID.
• entityType Required. Entity type for the idea (typically 1 for opportunities/ideas).
• entityObjectId Required. Ideawake idea/opportunity ID.
• userId Required. Ideawake user ID that will appear as the comment author (often a dedicated Integration user).
• anonymous Optional. 0 = named, 1 = anonymous.
• tags / attachments Optional. Extra metadata.
• challengeId Optional. Related challenge ID.
• commentThread Optional. Existing thread ID, if replying in a thread.
• additionalSettings Optional. Stage/visibility settings.
• source Optional. If sent, must be servicenow or oneplan.
Quick test (cURL): curl -X POST "https://endpoint.ideawake.com/webhooks/comment"
-H "Authorization: Bearer YOUR_WEBHOOK_API_KEY"
-H "Content-Type: application/json"
-d '{ "userId": 123, "message": "Synced from Jira", "community": 1, "entityType": 1, "entityObjectId": "456", "anonymous": 0 }'
Generic webhook (advanced):
One endpoint that can handle either a stage change or a comment, based on eventType. Prefer this when your system supports HMAC request signing and you want a single URL.
Request • Method: POST • URL: https://endpoint.ideawake.com/webhooks/receive • Headers: X-Community-Id: X-Signature: Content-Type: application/json
Body shape: { "eventType": "opportunity.stage.changed", "data": { "opportunityId": "692", "newStageId": "414", "source": "servicenow", "userId": 2, "workflowId": 2, "generateEmails": false, "generateActionItems": false, "linkStageFields": false }, "metadata": { "timestamp": "2024-01-01T00:00:00Z", "source": "ideawake" } }
For comments: • Use eventType: comment.created • Put the comment fields inside data
Supported eventType values: • opportunity.stage.changed • comment.created
Playbook 1: Jira status → Ideawake stage
Goal: When a linked Jira issue is marked Done, move the Ideawake idea to the matching stage.
Recommended flow
- Idea reaches an Implementation-type stage in Ideawake.
- Your Ideawake → Jira integration (or Zap) creates the Jira issue and stores the Ideawake opportunityId on the issue (custom field recommended).
- Work completes in Jira; issue transitions to Done.
- Jira Automation (or Zapier) calls the Stage Change webhook.
- Ideawake updates the idea stage.
Setup checklist
- Create/use a Jira custom field such as Ideawake Opportunity ID.
- In Ideawake, note the target stage ID for the status you want (for example, Implemented).
- In Jira Automation: • Trigger: Issue transitioned → Done • Action: Send web request • URL: https://endpoint.ideawake.com/webhooks/stage-change • Headers: Authorization: Bearer , Content-Type: application/json • Body: Stage Change JSON, with opportunityId from the custom field and your Ideawake newStageId
- Test with one known idea ↔ issue pair.
Playbook 2: Jira comment → Ideawake comment
Goal: When someone comments on the linked Jira issue, post that comment on the Ideawake idea.
Setup checklist
- Use the same Ideawake Opportunity ID custom field from Playbook 1.
- Create (or choose) an Ideawake user that will own synced comments (for example, “Jira Integration”). Note that user’s userId.
- In Jira Automation: • Trigger: Comment added • Action: Send web request to https://endpoint.ideawake.com/webhooks/comment • Body: include message (Jira comment text), entityObjectId (from custom field), community, entityType, and userId
- Confirm the comment appears on the idea in Ideawake.
Where do I find the IDs?
• Community ID: Community settings / Integrations webhook screen
• Opportunity / Idea ID: Idea URL or idea details in Ideawake
• Stage ID: Workflow / stage configuration in Ideawake
• User ID: User profile / admin user management (use a dedicated integration user for synced comments)
• Webhook API Key / Signature Key: Integrations → Webhooks (after enabling in Basic Settings)
Troubleshooting
401 Unauthorized Likely cause: Missing or invalid Bearer token or signature What to try: Recopy Webhook API Key; for Generic, verify HMAC over the raw body and X-Community-Id
400 Bad Request Likely cause: Missing required fields or invalid IDs What to try: Confirm opportunityId, newStageId, entityObjectId, userId, and source
Wrong idea updated / no comment Likely cause: Bad ID mapping What to try: Confirm the external ticket stores the correct Ideawake opportunity ID
Signature failures (Generic only) Likely cause: Body changed after signing, or wrong key What to try: Sign the exact raw JSON body; use current Signature Key; rotate only after updating all callers